Ich kann mir die Nummer nie merken. Ich brauche eine Gedächtnisregel.
Als ich diese Antwort schrieb, wusste ich nicht, dass GH6G so viele Google-Treffer hat, und jetzt habe ich es selbst benutzt :-)
Ich kann mir die Nummer nie merken. Ich brauche eine Gedächtnisregel.
Wenn Sie zufällig wissen, dass Ihr ASCII-Tabelle auswendig lernen und nicht MaxInt
:
!GH6G = 21 47 48 36 47
Der einfachste Weg, sich daran zu erinnern, ist ein Blick auf std::numeric_limits< int >::max()
Zum Beispiel ( von MSDN ),
// numeric_limits_max.cpp
#include <iostream>
#include <limits>
using namespace std;
int main() {
cout << "The maximum value for type float is: "
<< numeric_limits<float>::max( )
<< endl;
cout << "The maximum value for type double is: "
<< numeric_limits<double>::max( )
<< endl;
cout << "The maximum value for type int is: "
<< numeric_limits<int>::max( )
<< endl;
cout << "The maximum value for type short int is: "
<< numeric_limits<short int>::max( )
<< endl;
}
Interessanterweise hat Int32.MaxValue mehr Zeichen als 2.147.486.647.
Aber andererseits haben wir ja auch die Code-Vervollständigung,
Alles, was wir uns also merken müssen, ist Int3<period>M<enter>
, was in Visual Studio nur 6 Zeichen sind.
UPDATE Aus irgendeinem Grund wurde ich heruntergestuft. Der einzige Grund, den ich mir vorstellen kann, ist, dass sie meine erste Aussage nicht verstanden haben.
Die Eingabe von "Int32.MaxValue" dauert höchstens 14 Zeichen. Für die Eingabe von "2.147.486.647" werden entweder 10 oder 13 Zeichen benötigt, je nachdem, ob Sie die Kommas einfügen oder nicht.
Aber es kommt nicht darauf an, wie viele Zeichen man tippen muss, sondern wie man sie auswendig lernen kann. Ich bin sicher Iwannagohome
ist leichter zu memorieren als 298347829
. Es gibt jedoch keinen Grund für eine -1.
Es könnte weniger als das sein, machen Sie einfach Ihre eigenen maximalen Wert Snippet, "imv" <tab> <tab> vielleicht?
Denken Sie einfach daran, dass 2^(10*x) ungefähr 10^(3*x) ist - Sie sind wahrscheinlich schon daran gewöhnt, dass es sich um Kilobytes/Kibibytes usw. handelt. Das heißt:
2^10 = 1024 ~= one thousand
2^20 = 1024^2 = 1048576 ~= one million
2^30 = 1024^3 = 1073741824 ~= one billion
Da ein int 31 Bits (+ ~1 Bit für das Vorzeichen) verwendet, verdoppeln Sie einfach 2^30, um etwa 2 Milliarden zu erhalten. Für einen vorzeichenlosen int mit 32 Bits verdoppeln Sie noch einmal und erhalten 4 Milliarden. Der Fehlerfaktor wird natürlich umso höher, je größer der Wert ist, aber Sie brauchen sich den genauen Wert nicht zu merken (wenn Sie ihn brauchen, sollten Sie ohnehin eine vordefinierte Konstante dafür verwenden). Der ungefähre Wert reicht aus, um zu bemerken, wenn etwas gefährlich nahe am Überlaufen ist.
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