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.

7voto

jalf Punkte 235501

Wie meinen Sie das? Es sollte einfach genug sein, sich zu merken, dass es 2^32 ist. Wenn Sie eine Regel brauchen, um sich den Wert dieser Zahl zu merken, gibt es eine praktische Faustregel für die Umrechnung zwischen Binär- und Dezimalzahlen im Allgemeinen:

2^10 ~ 1000

das bedeutet 2^20 ~ 1.000.000

und 2^30 ~ 1.000.000.000

Das Doppelte davon (2^31) sind rund 2 Milliarden, und das Doppelte davon (2^32) sind 4 Milliarden.

Auf diese Weise können Sie auf einfache Weise eine grobe Schätzung einer beliebigen Binärzahl vornehmen. 10 Nullen im Binärformat entsprechen 3 Nullen im Dezimalformat.

7 Stimmen

Aber es ist nicht 2^32 - es ist (2^31)-1

6voto

juniperi Punkte 3613

In Objective-C (iOS & OSX) müssen Sie sich nur diese Makros merken:

#define INT8_MAX         127
#define INT16_MAX        32767
#define INT32_MAX        2147483647
#define INT64_MAX        9223372036854775807LL

#define UINT8_MAX         255
#define UINT16_MAX        65535
#define UINT32_MAX        4294967295U
#define UINT64_MAX        18446744073709551615ULL

5voto

Int32 bedeutet, dass Sie 32 Bits zum Speichern Ihrer Zahl zur Verfügung haben. Das höchste Bit ist das Vorzeichen-Bit, das angibt, ob die Zahl positiv oder negativ ist. Sie haben also 2^31 Bits für positive und negative Zahlen.

Da Null eine positive Zahl ist, ergibt sich der logische Bereich von (wie bereits erwähnt)

+2147483647 bis -2147483648

Wenn Sie denken, dass das zu klein ist, verwenden Sie Int64:

+9223372036854775807 bis -9223372036854775808

Und warum zum Teufel wollen Sie sich diese Nummer merken? Um sie in Ihrem Code zu verwenden? Sie sollten in Ihrem Code immer Int32.MaxValue oder Int32.MinValue verwenden, da dies statische Werte sind (innerhalb des .net-Kerns) und daher schneller zu verwenden sind als das Erstellen eines neuen int mit Code.

Meine Aussage: Wenn du diese Zahl auswendig kennst, gibst du nur an!

2 Stimmen

Die meisten modernen Computer speichern Zahlen im "Zweierkompliment"-Format. Das höchste (nicht das niedrigste) Bit ist das Vorzeichen. Das Schöne an der Zweierkomposition ist, dass -ve Zahlen durch die natürlichen Überlaufregeln der CPU behandelt werden. z.B. 0xFF ist 8 Bit -1, addieren Sie das zu 0x01 (+1) und Sie erhalten 0x100. Schneiden Sie Bits über 8 auf 0x00 ab und Sie haben Ihre Antwort.

5voto

soprof Punkte 326

Denken Sie daran: 21 IQ ITEM 47

Sie kann mit einem beliebigen Telefonblock entschlüsselt werden, oder Sie können sie einfach selbst auf ein Blatt Papier schreiben.

Um sich an "21 IQ ITEM 47" zu erinnern, würde ich sagen: "Hitman:Codename 47 hatte 21 Missionen, die alle für sich IQ ITEMs waren".

Oder "Ich putze mir jeden Tag um 21:47 Uhr die Zähne, weil ich einen hohen IQ habe und keine Gegenstände in meinem Mund mag".

0 Stimmen

Was meinen Sie mit de-encoded with any phone pad ?

4voto

G.Rassovsky Punkte 672

2147483647

Das müssen Sie sich merken:

  • Es ist 2 Milliarden .
  • Die nächsten drei Triolen nehmen in dieser Weise zu: 100er, 400er, 600er
  • Die erste und die letzte Triole benötigen 3 hinzugefügt, so dass sie aufgerundet werden auf 50 (z. B. 147 + 3 = 150 & 647 + 3 = 650)
  • Die zweite Triole benötigt 3 subtrahiert, um den Wert auf 80 (z. B. 483 - 3 = 480)

Daher 2, 147, 483, 647

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