Ich kann mir die Nummer nie merken. Ich brauche eine Gedächtnisregel.
Sie können Unterstriche verwenden, um die Lesbarkeit in einigen Sprachen zu verbessern. Soweit ich weiß, unterstützen Java und Swift dies, vielleicht auch andere. 0x7FFF_FFFF
Ich kann mir die Nummer nie merken. Ich brauche eine Gedächtnisregel.
Im Allgemeinen können Sie eine einfache Operation durchführen, die die Natur eines Int32 widerspiegelt, nämlich alle verfügbaren Bits mit 1en zu füllen. Es funktioniert im Grunde genommen in den meisten Sprachen auf die gleiche Weise, aber ich gehe mit Python für das Beispiel:
max = 0
bits = [1] * 31 # Generate a "bit array" filled with 1's
for bit in bits:
max = (max << 1) | bit
# max is now 2147483647
Für vorzeichenlose Int32's, machen Sie es 32 statt 31 1's.
Aber da es ein paar abenteuerlichere Ansätze gibt, habe ich angefangen, mir Formeln auszudenken, nur so zum Spaß...
Formel 1 (Zahlen werden konkateniert, wenn kein Operator angegeben wird)
Python-Schnellprüfung
a = 4
b = 8
ab = int('%d%d' % (a, b))
ba = int('%d%d' % (b, a))
'%d%d%d%d%d' % (ba/a, ab-1, ab, ab-a-b, ab-1)
# gives '2147483647'
Formel 2
Python-Schnellprüfung
x = 48
'%d%d%d%d%d' % (x/2-3, x-1, x, x*3/4, x-1)
# gives '2147483647'
Es sind 2 31 - 1 (32 Bits, eines wird für das Vorzeichen verwendet).
Wenn Sie einen ungefähren Wert wünschen, verwenden Sie 2 10 \= 1024 ≈ 10 3 also 2 31 ≈ 2*10 9 . Wenn Sie einen genauen Wert von Hand berechnen wollen, verwenden Sie die Potenzierung durch Quadrieren, um auf 2 zu kommen 32 \= 2 (2 5 ) und teilen Sie durch zwei. Du brauchst nur fünfmal zu quadrieren, um 2 zu erhalten 32 :
2*2 = 4
4*4 = 16
16*16 = 256
256*256 = 25*25*100 + 2*250*6 + 36 = 62500 + 3000 + 36 = 65536
65536*65536 =65000*65000 + 2*65000*536 + 536*536 =
4225000000 + 130000*536 + (250000 + 3600 + 36*36) =
4225000000 + 69680000 + 250000 + 3600 + 1296 =
4294967296
Teilt man dies durch zwei und zieht eins ab, erhält man 2.147.483.647. Wenn Sie nicht alle Ziffern benötigen, sondern nur die ersten drei signifikanten Ziffern, sind die Berechnungen bei jedem Quadrierungsschritt sehr einfach.
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.
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.
72 Stimmen
"Wenn eine Festplatte voll ist, werden alle MByte gelöscht und archiviert" (2 Buchstaben, 1 Buchstabe, 4 Buchstaben, 7 Buchstaben, 4 Buchstaben, 8 Buchstaben, 3 Buchstaben, 6 Buchstaben, 4 Buchstaben, 7 Buchstaben)
8 Stimmen
Ein Fall, in dem die int32 nicht ausreicht: bbc.com/news/world-asia-30288542
1 Stimmen
Warum in aller Welt wollen Sie sich die genaue Zahl merken? Was @JoachimSauer gesagt hat, ist die Art und Weise, wie Sie die Zahl loswerden.
0 Stimmen
@UltraCommit warum glaubst du, dass dein Weg mehr ist nützlich als einfache 2.147.483.647?
5 Stimmen
Auch hier gilt: "7 und sieben 'f's" ist eine leicht zu merkende Eselsbrücke! (0x7fffffff) :)
0 Stimmen
@Flinkman, Datei
limits.h
enthält all diese nützlichen Konstanten und vieles mehr. Es wäre angemessener zu fragen, "wo man all diese plattformspezifischen Werte findet".1 Stimmen
Am besten merkt man sich die Nummer nicht, sondern setzt einfach ein Lesezeichen auf eine Internetseite, auf der die Nummer steht (z. B. diese)
2 Stimmen
Fang mit 2 an...7 Tage in der Woche, 2*7=14 das ist 2147 jetzt sind die nächsten zwei 47+1=48, 214748, dann kommt die Anzahl der Tage im Jahr - 1, 365-1=364 und endest wieder mit 7. Du wirst es jetzt wohl nie mehr vergessen können :) 2 14 7 48 364 7 = 2 1 47 48 364 7 = 2147483647
0 Stimmen
Etwas weniger als die Anzahl der Aufrufe von Gangnam Style auf Youtube
3 Stimmen
Diese Art von Frage würde in der heutigen SO schamlos abgeschmettert werden. Vor allem in der Nähe bestimmter Regionen, die nicht genannt werden sollen.
0 Stimmen
Das können Sie tun
(1 << 31) -1
o(1 << -1) -1
für vorzeichenbehaftete 32-Bit- oder~0
für 32-Bit ohne Vorzeichen.0 Stimmen
Denken Sie nur daran, dass es die achte Mersenne-Primzahl ist. Das sollte Ihnen helfen, sich die Zahl zu merken.
0 Stimmen
Wenn du 1337 h4x0r bist, wirst du dich mit Piata daran erinnern: "Piata aß das Ei um" ... n00n? Sagen wir mal, sie hat das Ei mittags gegessen.
0 Stimmen
"Wenn ich eine ganze Zahl habe, dann ist die mögliche Höchstzahl nicht fünfzehn." Stattdessen sind es die verketteten Längen dieser Wörter. Cooles Zeug.
8 Stimmen
Dieser Beitrag wird diskutiert auf meta