2 ^ 16 एक "विशेष" संख्या क्यों है? [बन्द है]


48

ठीक है, मुझे यह पूछने में बेवकूफी महसूस हो रही है - लेकिन जेफ के लेख में: इंटरव्यू फोन स्क्रीन राइट मिलना और मूल रूप से 5 आवश्यक फोन स्क्रीन सवालों के जवाब में बताया गया है :

जब आप 2 ^ 16 के साथ पूछते हैं, तो उन्हें आपको घूरना नहीं चाहिए। यह एक विशेष संख्या है। उन्हें इसका पता होना चाहिए।

मैं एक डेवलपर \ सॉफ्टवेयर इंजीनियर \ कोड बंदर रहा हूँ जो कि थोड़ी देर के लिए है, और मुझे नहीं लगता कि मैं कभी भी इस पर आया हूं। मेरा मतलब है, मैं निश्चित रूप से द्विआधारी मूल्यों की गणना कर सकता हूं उन पर बुनियादी संचालन, आदि, लेकिन मैं यह नहीं देखता कि इस मूल्य के बारे में "विशेष" क्या है।


6
यह 2 की शक्ति है? :)
माइकल के

2
@ मिचेल 2^16.1भी 2 की शक्ति है, लेकिन कुछ खास नहीं है। उसी के लिए 2^0
19

4
@Radek: 2**0है 1, जो वास्तव में एक बहुत ही विशेष संख्या है;) लेकिन हां, हम आम तौर पर केवल दो की शक्तियों से चिंतित हैं जहां घातांक एक सकारात्मक पूर्णांक है।

1
खैर, 10 ^ 3 या 10 ^ 6 एक विशेष संख्या क्यों है?

4
क्या यह 90 के दशक का साक्षात्कार प्रश्न है? 16 बिट्स विशेष रूप से वापस आ गए थे
क्रिस एस

जवाबों:


81

(२ १६ - १) या ६५५३५ या 0xFFFFया "६४ k" २ बाइट का अधिकतम मूल्य है। लंबे समय तक CPU में 16-बिट आर्किटेक्चर और OSes का उपयोग किया गया था, इसी तरह 16-बिट ऑपरेशन और "शब्द" पर आधारित थे । 16-बिट कमांड और 16-बिट मेमोरी पते थे। बहुत सारे सिस्टम / कंपाइलर अभी भी पूर्णांक के लिए 16 बिट्स का उपयोग करते हैं।

तो, (२ १६ - १) विशेष है क्योंकि यह सबसे बड़ी संख्या है जो १६-बिट (अहस्ताक्षरित) पूर्णांक धारण कर सकती है और सबसे बड़ी मेमोरी एड्रेस जिसे १६-बिट आर्किटेक्चर एक्सेस कर सकता है।


23
FYI करें, यह एक्सेल स्प्रेडशीट में पंक्तियों की संख्या भी है :)
ट्रैविस क्रिश्चियन

2
क्या अब भी वह सीमा है?
18

6
मुझे सही साबित होना है। हो सकता है कि मुझे थोड़ी देर हो गई हो जब मैंने सभी तरह से नीचे स्क्रॉल किया।
ट्रैविस क्रिश्चियन

3
@ ट्राविस: अंतिम वाक्य में एक-एक त्रुटि है; 2 ^ 16 में 17 बिट्स की आवश्यकता होती है।
PSU

2
65535 भी IPv4 (और ipv6?) प्रोटोकॉल में पाया जाने वाला उच्चतम पोर्ट नंबर है।
कोटमेडोज

58

स्टीव Yegge के लेख से पूरा शरीर,

उम्मीदवारों को पता होना चाहिए कि बिट और बाइट क्या हैं। उन्हें बाइनरी में गिनने में सक्षम होना चाहिए; उदाहरण के लिए, वे आपको बता सकते हैं कि दशमलव में 2 ^ 5 या 2 ^ 10 क्या है। जब आप 2 ^ 16 के साथ पूछते हैं, तो उन्हें आपको घूरना नहीं चाहिए। यह एक विशेष संख्या है। उन्हें इसका पता होना चाहिए।

प्रश्न में आपके द्वारा उद्धृत बिट से मुझे फेंक दिया गया था; यह लग रहा था कि एक उम्मीदवार को इसका महत्व बताने में सक्षम होना चाहिए, लेकिन संदर्भ में वह कह रहा है कि उम्मीदवारों को पता होना चाहिए, उनके सिर के ऊपर, 2 16 का दशमलव रूपांतरण क्या है।

इसका महत्व यह है कि चूँकि हम मनुष्य अभी भी गिनती के लिए दशमलव का उपयोग करते हैं, विशेष रूप से हमारे सिर में (ज्यादातर परिस्थितियों में), हमें सामान्य बाइट ब्लॉकों की खुरदरा क्षमता को जानना होगा जो हम भंडारण, मेमोरी या यहां तक ​​कि चरित्र एन्कोडिंग के लिए उपयोग करते हैं। चूंकि एक बाइट 8 बिट है, सबसे आम 8, 16, 24, 32 और 64 हैं।

वर्तमान समय में मैं कहूंगा कि 2 32 सबसे अधिक होने वाली क्षमता है जो एक डेवलपर के साथ सौदा होता है। मुझे उन डेवलपर्स पर संदेह है जो नहीं जानते कि 2 32 लगभग 4 बिलियन हैं (यदि हस्ताक्षर किए गए तो अधिकतम ~ 2 बिलियन का मूल्य), क्योंकि इसका मतलब है कि उन्होंने कभी भी यह पता लगाने की जहमत नहीं उठाई है कि उनके डेटाबेस में कितने रिकॉर्ड संग्रहीत किए जा सकते हैं intप्राथमिक कुंजियों के लिए 32-बिट एस का उपयोग करें, या जब intआईडी, दिनांक आदि के लिए 32-बिट एस का उपयोग करके पुराना कोड 64-बिट के लिए फिर से चालू करना होगा। 1

2 16 जावा की कुल क्षमता है short। (कुल संख्या २५ १५ से २ १५ -१ के बीच)

एक डेवलपर को दिल से जानना चाहिए कि 8-बिट क्या है। कई सामान्य उपयोगों में से ASCII वर्ण एन्कोडिंग है।

मैं एक प्रोग्रामर से 2 14 या 2 18 बिल्कुल भी जानने की उम्मीद नहीं करूंगा , लेकिन मैं शायद यह उम्मीद करूंगा कि वे 2 16 जानते हैं क्योंकि यह एक बहुत ही सामान्य रूप से होने वाली संख्या और कम संख्या (65536) को आसानी से पूर्ण संख्या याद है।


1: यदि आप कॉल ऑफ ड्यूटी के लीडरबोर्ड को ब्राउज़ करते हैं: MW2 या iPhone गेम सेंटर में आप अक्सर 2,147,483,647 के उच्च स्कोर मूल्यों के साथ शीर्ष पर थिएटर देखेंगे, जो कि 2 31 -1 है, एक हस्ताक्षरित 2 32 एंगर का अधिकतम मूल्य ।


22
याद रखने वाली एक अच्छी बात यह है कि 2 ^ 10 लगभग एक हजार है, और वहां से आपको 2 ^ 20 एक मिलियन, और 2 ^ 30 बिलियन और इतने पर मिलते हैं। और इसकी मदद से यह कुछ हद तक "देखना" आसान है कि 2 ^ 14 सोलह मिलियन है, इसलिए आप बाइनरी और दशमलव के बीच मानसिक रूपांतरण कर सकते हैं। और २ ^ ६४ १६ * १० ^ १ 16 है, जो हम्म है ... १६ बिलियन बिलियन :)
मैगलो

@ मैगलो, धन्यवाद, अच्छी बात। यह ध्यान देने योग्य है कि आप 2 ^ 64 पर कैसे पहुंचे, क्योंकि मुझे एक मिनट लगा। 1000 10 ^ 3 है जो लगभग 2 ^ 10 है। 64 4 और 60 है। 60/10 6 है, 6 * 3 18 है, इसलिए आप प्राप्त करें: 10 ^ 18 * (2 ^ 4 या 16) ...
निकोल

2
Uuh। मैंने ऊपर एक टाइपो बनाया (और किसी तरह इसे संपादित नहीं कर सकता) 2 ^ 14 बेशक सोलह हजार है , मिलियन नहीं। (मुझे लगता है कि यह सब के बाद "देखना" आसान नहीं था :)
मैग्लोब

+1 अच्छा जवाब, क्योंकि एक अधिक संपूर्ण संदर्भ यह है कि आप उस व्यक्ति के बारे में सोच रहे हैं, जो विशेष रूप से संदर्भ और डोमेन का ज्ञान रखता है।
जल्दी_अगले

4
उम, ASCII 7-बिट है; ;-)
ब्रेंडन

3

एकमात्र कारण मैं 2 16 के बारे में "विशेष" के रूप में देख सकता हूं , क्योंकि यह उच्चतम पूर्णांक से एक अधिक है जिसे आप 16 बिट ऑपरेटिंग सिस्टम पर एकल रजिस्टर में स्टोर कर सकते हैं।

इसी तरह आप एक ही तर्क को 2 32 और 32 बिट ऑपरेटिंग सिस्टम पर लागू कर सकते हैं।

मुझे यह कहने में सक्षम होने से पहले प्रश्न के लिए अधिक संदर्भ जानना होगा कि क्या यह ज्ञान का एक महत्वपूर्ण टुकड़ा था या नहीं।


मैं कसम खाता हूं कि आपने जो कुछ भी लिखा है, उसमें से अधिकांश को मैंने छाना होगा। मैंने देखा कि 2 ^ 16 और उच्चतम पूर्णांक था।
ChaosPandion

6
यह गलत है। 16-बिट ऑपरेटिंग सिस्टम में 32-बिट (या उच्चतर) डेटा प्रकार होना पूरी तरह से संभव है। एक 16-बिट पूर्णांक केवल सबसे बड़ा मूल्य है जिसे 16-बिट प्रोसेसर पर एकल रजिस्टर में संग्रहीत किया जा सकता है।
चिन्मय कांची

@Chinmay - बिंदु लिया;)
ChrisF
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.