1378 Stimmen

Was ist der Höchstwert für einen int32?

Ich kann mir die Nummer nie merken. Ich brauche eine Gedächtnisregel.

48 Stimmen

Ohne Vorzeichen: 2³²-1 = 4-1024³-1; mit Vorzeichen: -2³¹ .. +2³¹-1, weil das Vorzeichenbit das höchste Bit ist. Lerne einfach 2=1 bis 2¹=1024 und kombiniere. 1024=1k, 1024²=1M, 1024³=1G

31 Stimmen

Ich erinnere mich im Allgemeinen daran, dass alle 3 Bits etwa einer Dezimalstelle entsprechen. So komme ich auf die richtige Größenordnung: 32 Bits sind 10 Ziffern.

8 Stimmen

@JoachimSauer es kann sicherlich bei der Fehlersuche helfen, wenn man lernt, zumindest diese Art von Zahlen zu erkennen.

1voto

Michael Easter Punkte 22288

Die REPL von Java 9 verwenden, jshell :

$ jshell
|  Welcome to JShell -- Version 9-Debian

jshell> System.out.println(Integer.MAX_VALUE)
2147483647

1voto

trinalbadger587 Punkte 1461

Im Binärformat ist der maximale Wert eines Int32 111111111111111111111111111111111 aber in Zehnerbasis ist es 2147483647 oder 2^31-1 oder Int32.MaxValue

1voto

g10guang Punkte 3583

Versuchen Sie es in Python:

>>> int('1' * 31, base=2)
2147483647

1voto

panzi Punkte 7334

Sie ist sehr leicht zu merken. Im Hexadezimalsystem besteht eine Ziffer aus 4 Bits. Für unsigned int schreiben Sie also 0x und 8 f s ( 0xffffffff ) in eine Python- oder Ruby-Shell eingeben, um den Wert zur Basis 10 zu erhalten. Wenn Sie den Wert mit Vorzeichen benötigen, denken Sie einfach daran, dass das höchste Bit als Vorzeichen verwendet wird. Sie müssen es also weglassen. Sie müssen sich nur merken, dass die Zahl, bei der die unteren 3 Bits 1 und das 4. Bit 0 sind, gleich 7 ist, also schreiben Sie 0x7fffffff in eine Python- oder Ruby-Shell. Sie könnten auch schreiben 0x100000000 - 1 y 0x80000000 - 1 falls Sie sich das besser merken können.

0voto

Reed Hedges Punkte 1583

In C verwenden INT32_MAX nach #include <stdint.h> . In C++ verwenden INT32_MAX nach #include <cstdint> .

Oder INT_MAX für plattformspezifische Größe oder UINT32_MAX o UINT_MAX para unsigned int . Siehe http://www.cplusplus.com/reference/cstdint/ y http://www.cplusplus.com/reference/climits/ .

Oder sizeof(int) .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X