2010-09-29 14 views
7

संभव डुप्लिकेट है: मुझे पता है
What is "2's Complement"?क्यों int32 अधिकतम मूल्य 2^31 -1

int32 है 32 बिट्स (4 बाइट्स) की लंबाई है। मुझे लगता है कि इसमें 2^32 मूल्य हैं लेकिन उनमें से आधे को शून्य के नीचे होना चाहिए, मुझे लगता है कि इसके साथ कुछ करने की ज़रूरत है। मैं जानना चाहता हूं कि वास्तव में int32 में अधिकतम क्यों है। सकारात्मक संख्या 2^31 -1।

+0

डुप्लिकेट [एक हस्ताक्षरित एन-बिट पूर्णांक 2^एन -1 और अधिकतम 2^एन?] का अधिकतम मूल्य क्यों है (https://stackoverflow.com/questions/5771520/why-is-the- अधिकतम -value के- एक-अहस्ताक्षरित-एन-बिट पूर्णांक 2n-1-और-नहीं-2n) –

उत्तर

23

2^32 संभावित मान

− 2^31 मूल्यों के लिए के लिए इस्तेमाल किया negative integers

− 1 मान उपयोग शून्य

= 2^31 − 1 मान धनात्मक पूर्णांक

33

के लिए उपलब्ध यह सबसे महत्वपूर्ण बिट संकेत (1 नकारात्मक अर्थ) को कोड करने के लिए प्रयोग किया जाता है, इसलिए वास्तविक मूल्य के लिए केवल 31 बिट उपलब्ध हैं।

Int32.MaxValue = 2^31 - 1 = 01111111111111111111111111111111 
        1  = 00000000000000000000000000000001 
        0  = 00000000000000000000000000000000 
       -1  = 11111111111111111111111111111111 
Int32.MinValue = -2^31  = 10000000000000000000000000000000 
0

आप शून्य (न्यूनतम मूल्य = -2^31) नीचे 2^31 मूल्यों, शून्य और शून्य ही ऊपर 2^31-1 मान हैं। इससे 2^31 + 2^31-1 + 1 = 2 * 2^31 = 2^32 मान :) :)

अन्य स्पष्टीकरण में नकारात्मक संख्याओं का प्रतिनिधित्व करने का तरीका शामिल है (दो पूरक): संक्षेप में, सबसे महत्वपूर्ण बिट नकारात्मक संख्या इंगित करता है, इसलिए आपके पास 2^31 पॉजिटिव नंबर (शून्य सहित) शेष है, जो हमें रेंज देता है 0..2^31-1

4

2^32 के बारे में है 4.2 अरब यह VALUES की अधिकतम संख्या है कि 32 अंकों के साथ एक बाइनरी संख्या (32-बिट संख्या) का प्रतिनिधित्व कर सकते हैं।

वे मान किसी भी सीमा में कोई भी मूल्य हो सकते हैं। एक संयुक्त हस्ताक्षर 32-बिट संख्या में, मान्य मान 0 से 2^32-1 (1 से 2^32 के बजाय, लेकिन VALUES की समान संख्या, लगभग 4.2 बिलियन) हैं।

एक हस्ताक्षरित 32-बिट संख्या में, 32 बिट्स में से एक यह इंगित करने के लिए प्रयोग किया जाता है कि संख्या ऋणात्मक है या नहीं। इससे मूल्यों की संख्या 2^1, या आधे से कम हो जाती है। यह 2^31 छोड़ देता है, जो 2.1 अरब है। इसका मतलब है कि सीमा अब 2.1.1 अरब से 2.1 बिलियन है। मूल्यों की एक ही संख्या, अलग-अलग सीमा।

संबंधित मुद्दे