Ich kann mir die Nummer nie merken. Ich brauche eine Gedächtnisregel.
Aber es ist nicht 2^32 - es ist (2^31)-1
Ich kann mir die Nummer nie merken. Ich brauche eine Gedächtnisregel.
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.
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
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!
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.
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".
2147483647
Das müssen Sie sich merken:
Daher 2, 147, 483, 647
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