Warum int32 den maximalen Wert hat 2 ^ 31 -1 [doppelt]

7

Ich weiß int32 hat eine Länge von 32 Bits (4 Bytes). Ich nehme an, es hat 2 ^ 32 Werte, aber da die Hälfte von ihnen unter Null sein muss, denke ich, dass es etwas damit zu tun hat. Ich würde gerne wissen, warum genau int32 max hat. positive Zahl 2 ^ 31 -1.

    
Petr 29.09.2010, 23:46
quelle

4 Antworten

33

Dieses höchstwertige Bit wird zum Codieren des Vorzeichens verwendet (1 bedeutet negativ), so dass nur 31 Bits für den tatsächlichen Wert verfügbar sind.

%Vor%     
Thomas Levesque 29.09.2010 23:53
quelle
23

2 ^ 32 mögliche Werte

- 2 ^ 31 Werte für negative ganze Zahlen

- 1 Wert für Null

= 2 ^ 31-1 Werte für positive ganze Zahlen verfügbar

    
dan04 29.09.2010 23:51
quelle
4

2 ^ 32 ist etwa 4,2 Milliarden. Dies ist die maximale Anzahl von Werten, die eine Binärzahl mit 32 Ziffern (eine 32-Bit-Zahl) darstellen kann.

Diese Werte können beliebige Werte in einem beliebigen Bereich sein. In einer UNSIGNED 32-Bit-Zahl sind die gültigen Werte von 0 bis 2 ^ 32-1 (statt 1 bis 2 ^ 32, aber die gleiche Anzahl von Werten, etwa 4,2 Milliarden).

In einer SIGNIERTEN 32-Bit-Nummer wird eines der 32 Bits verwendet, um anzuzeigen, ob die Nummer negativ ist oder nicht. Dies reduziert die Anzahl der Werte um 2 ^ 1 oder um die Hälfte. Dies ergibt 2 ^ 31, was etwa 2,1 Milliarden ist. Das bedeutet, dass die Bandbreite jetzt zwischen -2,1 und 2,1 Milliarden liegt. Gleiche Anzahl von Werten, unterschiedlicher Bereich.

    
Phil Gilmore 29.09.2010 23:55
quelle
0

Sie haben 2 ^ 31 Werte unter Null (Mindestwert = -2 ^ 31), 2 ^ 31-1 Werte über Null und Null selbst. Das macht 2 ^ 31 + 2 ^ 31-1 + 1 = 2 * 2 ^ 31 = 2 ^ 32 Werte :) ...

Die andere Erklärung beinhaltet die Art und Weise, wie negative Zahlen dargestellt werden (unter Verwendung des Zweier-Komplements): Kurz gesagt, das höchstwertige Bit zeigt eine negative Zahl an, so dass Sie 2 ^ 31 positive Zahlen (einschließlich Null) übrig haben uns der Bereich 0..2 ^ 31-1

    
MartinStettner 29.09.2010 23:53
quelle

Tags und Links