ohne Vorzeichen: 2³²-1 = 4 · 1024³-1; Vorzeichen: -2³¹ .. + 2³¹-1, da das Vorzeichenbit das höchste Bit ist. Lernen Sie einfach 2⁰ = 1 bis 2¹⁰ = 1024 und kombinieren Sie. 1024 = 1k, 1024² = 1M, 1024³ = 1G
Comonad
31
Ich erinnere mich im Allgemeinen, dass alle 3 Bits ungefähr eine Dezimalstelle sind. Dies bringt mich in die richtige Größenordnung: 32 Bit sind 10 Stellen.
Barmar
8
@JoachimSauer es kann sicherlich beim Debuggen helfen, wenn Sie lernen, diese Art von Zahlen zumindest zu erkennen.
Dunaril
72
"Wenn eine Festplatte voll wird, werden alle MBytes archiviert" (2 Buchstaben, 1 Buchstabe, 4 Buchstaben, 7 Buchstaben, 4 Buchstaben, 8 Buchstaben, 3 Buchstaben, 6 Buchstaben, 4 Buchstaben, 7 Buchstaben)
Meine Mnemonik: 2 ^ 10 ist sehr nahe an 1000, also ist 2 ^ (3 * 10) 1000 ^ 3 oder ungefähr 1 Milliarde. Eines der 32 Bits wird für das Vorzeichen verwendet, sodass der Maximalwert tatsächlich nur 2 ^ 31 beträgt, was ungefähr dem doppelten Betrag entspricht, den Sie für 2 ^ (3 * 10) erhalten: 2 Milliarden.
16807
164
2147483647 ohne Komma.
Vern D.
20
Verwenden Sie einfach: Integer.MAX_VALUEin Java.
Tim
184
Wenn Sie das Tattoo auf Ihrem Gesicht haben, vergessen Sie nicht, es umzukehren, damit es im Spiegel richtig angezeigt wird. Andernfalls sehen Sie 746.384.741.2, was falsch und peinlich wäre.
Larry S
127
2,147,483,647 = 0x7FFFFFFF, wenn Sie sich daran erinnern möchten, verwenden Sie einfach hex.
Roottraveller
493
Die richtigste Antwort, die ich mir vorstellen kann, ist Int32.MaxValue.
Bevor dies existierte, habe ich in all meinen Projekten #TIN_32 und INT32_MAX definiert.
WildJoe
45
@CamiloMartin Hey. Das ärgere ich mich. Es gab einfach keinen Platz mehr für Tätowierungen. Offensichtlich mussten der Zeichensatz iso-8859-1 und die Dezimalstellen Pi bis 31415 Priorität erhalten
siehe
3
Wenn Sie programmieren: Ja, in 99% der Fälle. Aber vielleicht möchten Sie wissen, dass die Planung von Programmieransätzen oder die Arbeit mit Daten etwa 2 Milliarden Euro kostet, obwohl es sich um eine sehr große Zahl handelt. :)
Andre Figueiredo
@sehe Ist latin1 / Windows 1252 nicht inzwischen veraltet? Wenn es nicht in die 7 Bytes von ASCII passt, denke ich nicht, dass es einen Platz im Hauptspeicher verdient. Ich meine ... alle UNICODE-Codepages sind irgendwie nützlich, aber über ein Megabyte Hautfläche scheint eine Verschwendung zu sein. (Ganz zu schweigen davon, dass es immer noch keine beschreibenden Glyphen für "pageup / pagedown" oder "pagehome / pageend" enthält)
1
Diese Eigenschaft kann ein guter Rat sein, zusätzlich zur Angabe der richtigen Nummer. Diese Antwort gefällt mir jedoch nicht, da sie nur eine unportable Methode zur Dertermination des Werts erwähnt und auch nicht erwähnt, für welche Programmiersprachen dies funktioniert ...
mozzbozz
439
Wenn Sie der Meinung sind, dass der Wert in Basis 10 zu schwer zu merken ist, versuchen Sie es mit Basis 2: 1111111111111111111111111111111
@ Nick Whaley: Nein, 11111111111111111111111111111 ist positiv. 1111111111111111111111111111111111 wäre negativ :-)
Curd
58
Basis 16 ist es noch einfacher 7FFFFFFF
Nelson Galdeman Graziano
34
@Curd 11111111111111111111111111111111als Basis-2-Zahl wäre immer noch positiv (ein Beispiel negativ in Basis-2 wäre -1) . Diese Folge von Bits ist nur negativ, wenn sie die Komplementzahl einer 32-Bit-2 darstellt :)
BlueRaja - Danny Pflughoeft
143
Am einfachsten zu merken ist die Basis 2.147.483.647. Dann müssen Sie sich nur noch an 1.
big_tommy_7bb erinnern
82
@ tim_barber_7BB eigentlich ist es 10.
fscheidl
317
Wenn Sie sich an die gesamte Pi-Nummer erinnern können, befindet sich die gesuchte Nummer an der Position 1.867.996.680 bis 1.867.996.689 der Dezimalstellen von Pi
Die numerische Zeichenfolge 2147483647 erscheint bei der Dezimalstelle von Pi mit 1.867.996.680 Dezimalstellen. 3.14 ...... 86181221809936452346 2147483647 10527835665425671614 ...
Weißt du, als ich anfing, deine Antwort zu lesen, erwartete ich etwas Praktisches, wie die 20. Ziffer.
JqueryToAddNumbers
95
Das scheint ziemlich cool zu sein. Haben Sie eine andere Speicherregel, an die Sie sich erinnern sollten: 1.867.996.680? Ich finde es schwierig, mich zu erinnern, bei welchem Index ich anfangen soll zu suchen ...
Alderath
10
" Wenn Sie sich an die gesamte Pi-Nummer erinnern können ... " - nein, können Sie nicht, es ist irrational {wie möglicherweise ein oder zwei Beiträge in diesem Q & As} 8-D
SlySven
10
@ Alderath Ich erinnere mich normalerweise an die 10 Dezimalstellen in sqrt (2), beginnend mit der Ziffer 380.630.713 ....
Henrik
2
@Alderath: Die numerische Zeichenfolge 1867996680 erscheint an der 380.630.713. Dezimalstelle der Quadratwurzel von 2.
Yair Halberstadt
290
Es ist 10-stellig, also tun Sie so, als wäre es eine Telefonnummer (vorausgesetzt, Sie befinden sich in den USA). 214-748-3647. Ich empfehle nicht, es anzurufen.
"In Dallas gibt es keine" 748 "-Austausch. Diese Nummer ist falsch." - von der Seite von Shambleh verlinkt
Tarnay Kálmán
104
@Steven Ich glaube nicht, dass es sich um Spammer handelt, sondern nur um Personen, die die Telefonnummer versehentlich als INTstatt VARCHARin MySQL gespeichert haben .
Zarel
8
Versuchte es anzurufen. Es klingelte einige Male und ging dann zum Fehlerwählton. = (
Krythic
172
Anstatt es als eine große Zahl zu betrachten, versuchen Sie es aufzuschlüsseln und suchen Sie nach zugehörigen Ideen, z.
2 maximale Snooker-Pausen (eine maximale Pause beträgt 147)
4 Jahre (48 Monate)
3 Jahre (36 Monate)
4 Jahre (48 Monate)
Das Obige gilt für die größte negative Zahl; positiv ist das minus eins.
Vielleicht wird die obige Aufschlüsselung für Sie nicht mehr unvergesslich sein (es ist kaum aufregend, oder?), Aber hoffentlich können Sie sich einige Ideen einfallen lassen, die es sind!
drunk ========= Drinking age is 21
AK ============ AK 47
A ============= 4 (A and 4 look the same)
horny ========= internet rule 34 (if it exists, there's 18+ material of it)
21 47 4(years) 3(years) 4(years)
21 47 48 36 48
Die Welten, an die man sich am schwersten erinnern kann. Wenn Sie sich 0118 999 88199 9119 752 ... 3 merken können, können Sie sich das merken.
BenM
11
@Rondles Ich denke, es ist tatsächlich 7253 am Ende.
Tim Tisdall
21
Nee. Das Trinkalter beträgt hier 18 Jahre ... Ich kann diese Mnemonik anscheinend nicht verwenden, mein Leben ist ruiniert.
Joffrey
4
@Aaren Cordova Früher sagten sie, dass Stackoverflow niemals lustig sein wird, nichts weiter als eine Q & A-Site, ich verweise sie im Allgemeinen auf diese Antwort. Dieses Ding kann nur in einem genialen Geist erschaffen werden, ich meine, das ist Kunst.
Mohd Abdul Mujib
5
Die größte negative 32-Bit-Ganzzahl oder 64-Bit-Ganzzahl ist -1.
Fred Mitchell
75
Nehmen Sie auf jeden Fall diesen regulären Ausdruck (er bestimmt, ob die Zeichenfolge eine nicht negative Ganzzahl in Dezimalform enthält, die ebenfalls nicht größer als Int32.MaxValue ist).
Schön! Ich denke, die 214-Regel sollte pi - 1 sein. Auch die Maske zeigt 68 statt 64. =) Für Luftfahrtfans wie mich sollte der 737-Wert leicht zu merken sein, wenn er mit Boeings mittelgroßem Verkehrsflugzeug assoziiert wird.
Sie können noch weiter gehen. Lassen Sie die Dezimalstelle fallen und vergleichen Sie pi und 2 ^ 31-1. In den gleichen Positionen erhalten Sie 141 vs 147, so dass die letzte Ziffer nur eine 7 wird. Dann 592 vs 483, alle sind eine Ziffer voneinander entfernt. Und 643 gegen 647, es ist wieder eine 7-Sache.
Peter Cooper
@ PeterCooper Trotzdem beginnen die Dezimalstellen für pi mit 1415926_5_35 (Beachten Sie die 5, nicht eine 4)
Moberg
15
Meine Mnemonik ist es, 4294967296 (was leicht zu merken ist) zu nehmen und durch 2
2 ^ 31 (signiert int max) ist also 2 ^ 30 (ungefähr 1 Milliarde) mal 2 ^ 1 (2) oder ungefähr 2 Milliarden. Und 2 ^ 32 ist 2 ^ 30 * 2 ^ 2 oder ungefähr 4 Milliarden. Diese Näherungsmethode ist genau genug, um etwa 2 ^ 64 zu erreichen (wobei der Fehler auf etwa 15% ansteigt).
Wenn Sie eine genaue Antwort benötigen, sollten Sie einen Taschenrechner aufrufen.
@NOhs Ich schätze den Link, aber meine Python-Antwort bezieht sich auf "Python 2" (ich füge die 2 zum Abschnittstitel hinzu, um es klarer zu machen). Meine Antwort ist also nicht veraltet. (Aber Python 2 ist zugegebenermaßen)
Martin Thoma
35
Hier ist eine Mnemonik zum Speichern von 2 ** 31, subtrahieren Sie eine, um den maximalen ganzzahligen Wert zu erhalten.
a = 1, b = 2, c = 3, d = 4, e = 5, f = 6, g = 7, h = 8, i = 9
Boys And Dogs Go Duck Hunting, Come Friday Ducks Hide
2 1 4 7 4 8 3 6 4 8
Ich habe die Potenzen von zwei bis zu 18 oft genug benutzt, um mich an sie zu erinnern, aber selbst ich habe mir nicht die Mühe gemacht, 2 ** 31 auswendig zu lernen. Es ist zu einfach, nach Bedarf zu berechnen oder eine Konstante zu verwenden oder als 2G zu schätzen.
Es hat 32 Bits und kann daher 2 ^ 32 Werte speichern. Nicht weniger.
JB.
28
Abgesehen von Witzen, wenn Sie wirklich nach einer nützlichen Speicherregel suchen, gibt es eine, die ich immer verwende, um mich an große Zahlen zu erinnern.
Sie müssen Ihre Nummer in Teile von 3-4 Ziffern aufteilen und diese mithilfe der Projektion auf der Tastatur Ihres Mobiltelefons visuell speichern. Es ist einfacher, auf einem Bild zu zeigen:
Wie Sie sehen, müssen Sie sich von nun an nur noch 3 Formen merken, von denen 2 wie ein Tetris L und eine wie eine Zecke aussehen . Das ist definitiv viel einfacher als das Auswendiglernen einer 10-stelligen Nummer.
Wenn Sie die Nummer abrufen müssen, rufen Sie einfach die Formen ab, stellen Sie sich eine Telefontastatur vor / schauen Sie sie an und projizieren Sie die Formen darauf. Vielleicht müssen Sie zunächst auf die Tastatur schauen, aber nach ein wenig Übung werden Sie sich daran erinnern, dass die Zahlen von oben links nach unten rechts gehen, sodass Sie sie sich einfach in Ihrem Kopf vorstellen können.
Stellen Sie einfach sicher, dass Sie sich die Richtung der Formen und die Anzahl der Stellen in jeder Form merken (im Beispiel 2147483647 haben wir beispielsweise ein 4-stelliges Tetris L und ein 3-stelliges L).
Mit dieser Technik können Sie sich leicht wichtige Nummern merken (z. B. meine 16-stellige Kreditkartennummer usw.).
Gute Idee! Form 1 ergibt 2147, Form 2 ergibt 483 und Form 3 soll 647 ergeben, aber wie gezeichnet könnte es als 6 5 47 interpretiert werden . Woher weiß ich, wann alle gekreuzten Zahlen einzuschließen sind (wie in Form 1) ) vs. wann man einige überspringt (wie in Form 3)? Sie müssen sich auch merken, dass die Formen jeweils 4, 3 und 3 Ziffern codieren. Oder Sie zeichnen Form 3 mit einem Bogen von 6 bis 4 anstelle einer geraden Linie.
Jskroch
@Squinch Nun, besonders um sich an int.Max zu erinnern, sollte es kein Problem sein, da Sie vielleicht wissen, dass es ungefähr 2 Milliarden sind, also 10 Zahlen enthält (und das bedeutet, wenn die erste Form 4 Zahlen hat, dann die zweite und die dritte Formen haben 3 entsprechend). Dies ist jedoch ein guter Punkt, wenn Sie diesen Ansatz für eine beliebige Anzahl verwenden möchten. Es gibt auch Zahlen, an die man sich auf diese Weise nur schwer erinnern kann (z. B. 1112 oder so). Andererseits sollte es sowieso nicht schwierig sein, sich an eine solche Nummer zu erinnern. Also würde ich sagen, es liegt an Ihnen, lassen Sie mich wissen, wenn Sie etwas Interessantes dafür finden. :)
Ivan Yurchenko
Ja, ich habe darüber nachgedacht, diese Methode zu verwenden, um eine beliebige Folge von Ziffern abzurufen, aber für diesen bestimmten int.Max-Wert funktioniert Ihre Methode ziemlich gut. Wie Sie sagten, sind wiederholte Ziffern ein Problem. Tatsächlich ist jede wiederholte Sequenz (wie 2323) ein Problem. Jede Sequenz, die sich selbst kreuzt (z. B. 2058), ist schwer zu zeichnen. Bei jeder Speichertechnik müssen Sie sich mehrere Informationen merken. Es ist eine persönliche Präferenz, welche Arten von Informationen am besten in Ihrem Kopf bleiben.
Jskroch
1
So erinnere ich mich an PIN-Codes und ähnliches, aber dann müssen Sie sie plötzlich auf Ihrem Computer eingeben und feststellen, dass der Nummernblock vertikal umgedreht ist. Das ist also eine Herausforderung.
Nibarius
Jemand in Dallas, Texas , hat viele seltsame Anrufe erhalten und hat keine Ahnung, dass Sie @IvanYurchenko schuld sind.
Bob Stein
21
Der einfachste Weg, dies für ganze Zahlen zu tun, ist die Verwendung von Hexadezimalzahlen, vorausgesetzt, es gibt nicht so etwas wie Int.maxInt (). Der Grund ist folgender:
Wie funktioniert das? Dies ist der binären Taktik sehr ähnlich und jede hexadezimale Ziffer besteht aus genau 4 Bits. Außerdem unterstützen viele Compiler Hex viel besser als Binär.
F hex to binary: 1111
8 hex to binary: 1000
7 hex to binary: 0111
0 hex to binary: 0000
7F ist also gleich 01111111 / 7FFF ist gleich 0111111111111111. Wenn Sie dies für eine "wahnsinnig hohe Konstante" verwenden, ist 7F ... ein sicheres Hex, aber es ist einfach genug, 7F und 80 auszuprobieren und sie einfach auszudrucken auf Ihrem Bildschirm, um zu sehen, um welches es sich handelt.
0x7FFF + 0x0001 = 0x8000, Ihr Verlust ist also nur eine Zahl. Die Verwendung von 0x7F ... ist normalerweise kein schlechter Kompromiss für zuverlässigeren Code, insbesondere wenn Sie 32-Bit oder mehr verwenden
Schreiben Sie zuerst 47 zweimal aus (Sie mögen Agent 47 , richtig?) Und lassen Sie dabei die Leerzeichen wie gezeigt (jeder Bindestrich ist ein Steckplatz für eine einzelne Ziffer. Zuerst 2 Steckplätze, dann 4)
--47----47
Denken Sie, Sie haben 12in der Hand (weil 12 = ein Dutzend). Multiplizieren Sie es mit der 4ersten Ziffer der Nummer von Agent 47, dh 47platzieren Sie das Ergebnis rechts neben dem ersten Paar, das Sie bereits haben
12 * 4 = 48
--4748--47 <-- after placing 48 to the right of first 47
Dann multiplizieren Sie 12mit 3(um die zweite Ziffer der Nummer von Agent 47 zu erhalten, die 7Sie benötigen 7 - 4 = 3) und setzen Sie das Ergebnis rechts von den ersten beiden Paaren, dem letzten Paar-Slot
12 * 3 = 36
--47483647 <-- after placing 36 to the right of first two pairs
Ziehen Sie zum Schluss die Ziffern einzeln von Ihrer Hand ab der am weitesten rechts stehenden Ziffer (in diesem Fall 2) und platzieren Sie sie in dem ersten leeren Steckplatz, den Sie erhalten
2-47483647 <-- after placing 2
2147483647 <-- after placing 1
Hier hast du es! Für ein negatives Limit können Sie sich das als 1 weiteren absoluten Wert vorstellen als die positive Grenze vorstellen.
Übe ein paar Mal und du wirst den Dreh raus bekommen!
Aus diesem Grund beträgt die RAM-Grenze eines 32-Bit-Computers 4 GB
Serj Sagan,
3
Der Wert von 4 GB ist bei vorzeichenlosen Ganzzahlen korrekt. Wenn Sie ein signiertes Int haben, müssen Sie natürlich durch 2 teilen, um den maximal möglichen Wert zu erhalten
SwissCoder
3
In 32-Bit gibt es 2 GB Speicherplatzreserve für den Benutzerprozess und 2 GB für den Kernel. Es kann so konfiguriert werden, dass der Kernel nur 1 GB reserviert hat
// 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 Code-Vervollständigung,
Ich denke, alles, was wir uns wirklich merken müssen, ist Int3<period>M<enter>, dass wir nur 6 Zeichen in Visual Studio eingeben müssen.
UPDATE
Aus irgendeinem Grund wurde ich abgelehnt. Der einzige Grund, an den ich denken 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 eingeben oder nicht.
Was jedoch zählt, ist nicht, wie viele Zeichen Sie eingeben müssen, sondern wie Sie sie auswendig lernen. Ich bin sicher, es Iwannagohomeist einfacher, sich zu merken als 298347829. Kein Grund für eine -1.
glglgl
3
Es könnte weniger sein, machen Sie einfach Ihr eigenes Maximalwert-Snippet, "imv" <tab> <tab> vielleicht?
BradleyDotNET
4
Zeichen !=Tastenanschläge. Für diesen armen .Net-Benutzer ist es in+ .+ ma+ Return.
Michael - Wo ist Clay Shirky
11
Denken Sie daran, dass 2 ^ (10 * x) ungefähr 10 ^ (3 * x) ist - Sie sind wahrscheinlich bereits mit Kilobyte / Kibibyte usw. daran gewöhnt. 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 verwendet (+ ~ 1 Bit für das Vorzeichen), verdoppeln Sie einfach 2 ^ 30, um ungefähr 2 Milliarden zu erhalten. Verdoppeln Sie für ein Int ohne Vorzeichen mit 32 Bit erneut 4 Milliarden. Der Fehlerfaktor wird natürlich umso höher, je größer Sie werden, aber Sie müssen nicht den genauen Wert speichern (wenn Sie ihn benötigen, sollten Sie trotzdem eine vordefinierte Konstante dafür verwenden). Der ungefähre Wert ist gut genug, um festzustellen, wann etwas gefährlich nahe am Überlaufen sein könnte.
Offtopic: 2 ^ 4 = 4 ^ 2, daher ist Potenzierung kommutativ!
Adam Liss
10
@ Pier-OlivierThibault nein, ich benutze es die ganze Zeit! Jetzt muss ich herausfinden, warum meine ganze Mathematik falsch läuft. wahrscheinlich etwas mit Multiplikationsfehlern zu tun. Wie auch immer, tschüss!
Türknauf
9
So mache ich es, um mich an 2.147.483.647 zu erinnern
Zu einem weiten Savannenviertel verhexte das Optimus-Trio vierzig September
2 - To
1 - A
4 - Far
7 - Savannah
4 - Quarter
8 - Optimus
3 - Trio
6 - Hexed
4 - Forty
7 - Septenary
Was meinst du? Es sollte leicht genug sein, sich daran zu erinnern, dass es 2 ^ 32 ist. Wenn eine Regel den Wert dieser Zahl speichern soll, ist eine praktische Faustregel die Konvertierung zwischen Binär und Dezimalzahl im Allgemeinen:
2 ^ 10 ~ 1000
was 2 ^ 20 ~ 1.000.000 bedeutet
und 2 ^ 30 ~ 1.000.000.000
Das Doppelte (2 ^ 31) ist ungefähr 2 Milliarden, und das Doppelte (2 ^ 32) ist 4 Milliarden.
Es ist eine einfache Möglichkeit, eine grobe Schätzung einer beliebigen Binärzahl zu erhalten. 10 binäre Nullen werden zu 3 Dezimalstellen.
Int32 bedeutet, dass Sie 32 Bit zum Speichern Ihrer Nummer zur Verfügung haben. Das höchste Bit ist das Vorzeichenbit. Dies zeigt an, ob die Zahl positiv oder negativ ist. Sie haben also 2 ^ 31 Bits für positive und negative Zahlen.
Wenn Null eine positive Zahl ist, erhalten Sie den logischen Bereich von (zuvor erwähnt)
+2147483647 bis -2147483648
Wenn Sie der Meinung sind, dass dies zu klein ist, verwenden Sie Int64:
+9223372036854775807 bis -9223372036854775808
Und warum zum Teufel willst du dich an diese Nummer erinnern? In Ihrem Code verwenden? Sie sollten immer Int32.MaxValue oder Int32.MinValue in Ihrem Code verwenden, da dies statische Werte (innerhalb des .net-Kerns) sind und daher schneller verwendet werden als das Erstellen eines neuen int mit Code.
Meine Aussage: Wenn Sie diese Nummer aus dem Gedächtnis kennen, geben Sie nur an!
Die meisten modernen Computer speichern Nummern im "Zwei-Kompliment" -Format. Das höchste (nicht niedrigste) Bit ist das Vorzeichen. Das Schöne an zwei Kompensationen ist, dass -ve Zahlen von den natürlichen Überlaufregeln der CPU behandelt werden. dh 0xFF ist 8 Bit -1, addiere das zu 0x01 (+1) und du erhältst 0x100. Wenn Sie Bits über 8 bis 0x00 abschneiden, haben Sie Ihre Antwort.
Tom Leys
5
Denken Sie daran: 21 IQ ITEM 47
Es kann mit jedem Telefonblock entschlüsselt werden, oder Sie können einfach einen auf ein Papier schreiben.
Um mich an "21 IQ ITEM 47" zu erinnern, würde ich mit "Hitman: Codename 47 hatte 21 Missionen, die jeweils für sich IQ IQEMs waren" gehen.
Oder "Ich putze jeden Tag um 21:47 Uhr die Zähne, weil ich einen hohen IQ habe und keine Gegenstände in meinem Mund mag".
Antworten:
Es ist 2.147.483.647. Der einfachste Weg, es sich zu merken, ist ein Tattoo.
quelle
Integer.MAX_VALUE
in Java.Die richtigste Antwort, die ich mir vorstellen kann, ist
Int32.MaxValue
.quelle
Wenn Sie der Meinung sind, dass der Wert in Basis 10 zu schwer zu merken ist, versuchen Sie es mit Basis 2: 1111111111111111111111111111111
quelle
11111111111111111111111111111111
als Basis-2-Zahl wäre immer noch positiv (ein Beispiel negativ in Basis-2 wäre-1
) . Diese Folge von Bits ist nur negativ, wenn sie die Komplementzahl einer 32-Bit-2 darstellt :)Wenn Sie sich an die gesamte Pi-Nummer erinnern können, befindet sich die gesuchte Nummer an der Position 1.867.996.680 bis 1.867.996.689 der Dezimalstellen von Pi
Quelle: http://www.subidiom.com/pi/
quelle
Es ist 10-stellig, also tun Sie so, als wäre es eine Telefonnummer (vorausgesetzt, Sie befinden sich in den USA). 214-748-3647. Ich empfehle nicht, es anzurufen.
quelle
INT
stattVARCHAR
in MySQL gespeichert haben .Anstatt es als eine große Zahl zu betrachten, versuchen Sie es aufzuschlüsseln und suchen Sie nach zugehörigen Ideen, z.
Das Obige gilt für die größte negative Zahl; positiv ist das minus eins.
Vielleicht wird die obige Aufschlüsselung für Sie nicht mehr unvergesslich sein (es ist kaum aufregend, oder?), Aber hoffentlich können Sie sich einige Ideen einfallen lassen, die es sind!
quelle
2^(31!)
oder(2^31)!
?Größter negativer Wert (32 Bit): -2147483648
(1 << 31)
Größter positiver Wert (32 Bit): 2147483647
~ (1 << 31)
Mnemonik: "betrunken AKA geil"
quelle
Nehmen Sie auf jeden Fall diesen regulären Ausdruck (er bestimmt, ob die Zeichenfolge eine nicht negative Ganzzahl in Dezimalform enthält, die ebenfalls nicht größer als Int32.MaxValue ist).
[0-9]{1,9}|[0-1][0-9]{1,8}|20[0-9]{1,8}|21[0-3][0-9]{1,7}|214[0-6][0-9]{1,7}|2147[0-3][0-9]{1,6}|21474[0-7][0-9]{1,5}|214748[0-2][0-9]{1,4}|2147483[0-5][0-9]{1,3}|21474836[0-3][0-9]{1,2}|214748364[0-7]
Vielleicht würde es Ihnen helfen, sich zu erinnern.
quelle
2147483647
. Dies wäre eine große Hilfe für die OPSo erinnerte ich mich
2147483647
:Schreiben Sie diese horizontal:
Jetzt haben Sie 2147483647.
Hoffe das hilft zumindest ein bisschen.
quelle
2 ^ 31 (signiert int max) ist also 2 ^ 30 (ungefähr 1 Milliarde) mal 2 ^ 1 (2) oder ungefähr 2 Milliarden. Und 2 ^ 32 ist 2 ^ 30 * 2 ^ 2 oder ungefähr 4 Milliarden. Diese Näherungsmethode ist genau genug, um etwa 2 ^ 64 zu erreichen (wobei der Fehler auf etwa 15% ansteigt).
Wenn Sie eine genaue Antwort benötigen, sollten Sie einen Taschenrechner aufrufen.
Praktische wortausgerichtete Kapazitätsnäherungen:
quelle
Nehmen Sie einfach einen anständigen Taschenrechner und geben Sie "7FFFFFFF" im Hex-Modus ein. Wechseln Sie dann zur Dezimalstelle.
2147483647.
quelle
Int32.MaxValue
/numeric_limits<int32_t>::max()
Es geht darum
2.1 * 10^9
. Keine Notwendigkeit, das genaue zu wissen2^{31} - 1 = 2,147,483,647
.C.
Sie können es in C so finden:
gibt (naja, ohne das
,
)C ++ 11
Java
Sie können dies auch mit Java erhalten:
Beachten Sie jedoch, dass Java-Ganzzahlen immer signiert sind.
Python 2
Python hat Ganzzahlen mit beliebiger Genauigkeit. In Python 2 werden sie jedoch C-Ganzzahlen zugeordnet. So können Sie Folgendes tun:
Python wechselt also zu,
long
wenn die Ganzzahl größer als wird2^31 -1
quelle
Hier ist eine Mnemonik zum Speichern von 2 ** 31, subtrahieren Sie eine, um den maximalen ganzzahligen Wert zu erhalten.
a = 1, b = 2, c = 3, d = 4, e = 5, f = 6, g = 7, h = 8, i = 9
Ich habe die Potenzen von zwei bis zu 18 oft genug benutzt, um mich an sie zu erinnern, aber selbst ich habe mir nicht die Mühe gemacht, 2 ** 31 auswendig zu lernen. Es ist zu einfach, nach Bedarf zu berechnen oder eine Konstante zu verwenden oder als 2G zu schätzen.
quelle
32 Bit, eines für das Vorzeichen, 31 Bit Information:
Warum -1?
Weil der erste Null ist, ist der größte der Zähler minus Eins .
BEARBEITEN für cantfindaname88
Die Anzahl ist 2 ^ 31, aber die größte kann nicht 2147483648 (2 ^ 31) sein, weil wir von 0 zählen, nicht von 1.
Eine weitere Erklärung mit nur 3 Bits: 1 für das Vorzeichen, 2 für die Information
Vor allem die möglichen Werte mit 3 Bits: (2 ^ 3 = 8 Werte)
quelle
Nun, es hat 32 Bits und kann daher 2 ^ 32 verschiedene Werte speichern. Die Hälfte davon ist negativ.
Die Lösung ist 2.147.483.647
Und der niedrigste ist -2.147.483.648.
(Beachten Sie, dass es noch einen negativen Wert gibt.)
quelle
Abgesehen von Witzen, wenn Sie wirklich nach einer nützlichen Speicherregel suchen, gibt es eine, die ich immer verwende, um mich an große Zahlen zu erinnern.
Sie müssen Ihre Nummer in Teile von 3-4 Ziffern aufteilen und diese mithilfe der Projektion auf der Tastatur Ihres Mobiltelefons visuell speichern. Es ist einfacher, auf einem Bild zu zeigen:
Wie Sie sehen, müssen Sie sich von nun an nur noch 3 Formen merken, von denen 2 wie ein Tetris L und eine wie eine Zecke aussehen . Das ist definitiv viel einfacher als das Auswendiglernen einer 10-stelligen Nummer.
Wenn Sie die Nummer abrufen müssen, rufen Sie einfach die Formen ab, stellen Sie sich eine Telefontastatur vor / schauen Sie sie an und projizieren Sie die Formen darauf. Vielleicht müssen Sie zunächst auf die Tastatur schauen, aber nach ein wenig Übung werden Sie sich daran erinnern, dass die Zahlen von oben links nach unten rechts gehen, sodass Sie sie sich einfach in Ihrem Kopf vorstellen können.
Stellen Sie einfach sicher, dass Sie sich die Richtung der Formen und die Anzahl der Stellen in jeder Form merken (im Beispiel 2147483647 haben wir beispielsweise ein 4-stelliges Tetris L und ein 3-stelliges L).
Mit dieser Technik können Sie sich leicht wichtige Nummern merken (z. B. meine 16-stellige Kreditkartennummer usw.).
quelle
Der einfachste Weg, dies für ganze Zahlen zu tun, ist die Verwendung von Hexadezimalzahlen, vorausgesetzt, es gibt nicht so etwas wie Int.maxInt (). Der Grund ist folgender:
Max vorzeichenlose Werte
Vorzeichenbehaftete Werte, wobei 7F als maximaler vorzeichenbehafteter Wert verwendet wird
Vorzeichenbehaftete Werte, wobei 80 als maximaler vorzeichenbehafteter Wert verwendet wird
Wie funktioniert das? Dies ist der binären Taktik sehr ähnlich und jede hexadezimale Ziffer besteht aus genau 4 Bits. Außerdem unterstützen viele Compiler Hex viel besser als Binär.
7F ist also gleich 01111111 / 7FFF ist gleich 0111111111111111. Wenn Sie dies für eine "wahnsinnig hohe Konstante" verwenden, ist 7F ... ein sicheres Hex, aber es ist einfach genug, 7F und 80 auszuprobieren und sie einfach auszudrucken auf Ihrem Bildschirm, um zu sehen, um welches es sich handelt.
0x7FFF + 0x0001 = 0x8000, Ihr Verlust ist also nur eine Zahl. Die Verwendung von 0x7F ... ist normalerweise kein schlechter Kompromiss für zuverlässigeren Code, insbesondere wenn Sie 32-Bit oder mehr verwenden
quelle
Schreiben Sie zuerst 47 zweimal aus (Sie mögen Agent 47 , richtig?) Und lassen Sie dabei die Leerzeichen wie gezeigt (jeder Bindestrich ist ein Steckplatz für eine einzelne Ziffer. Zuerst 2 Steckplätze, dann 4)
Denken Sie, Sie haben
12
in der Hand (weil 12 = ein Dutzend). Multiplizieren Sie es mit der4
ersten Ziffer der Nummer von Agent 47, dh47
platzieren Sie das Ergebnis rechts neben dem ersten Paar, das Sie bereits habenDann multiplizieren Sie
12
mit3
(um die zweite Ziffer der Nummer von Agent 47 zu erhalten, die7
Sie benötigen7 - 4 = 3
) und setzen Sie das Ergebnis rechts von den ersten beiden Paaren, dem letzten Paar-SlotZiehen Sie zum Schluss die Ziffern einzeln von Ihrer Hand ab der am weitesten rechts stehenden Ziffer (in diesem Fall 2) und platzieren Sie sie in dem ersten leeren Steckplatz, den Sie erhalten
Hier hast du es! Für ein negatives Limit können Sie sich das als 1 weiteren absoluten Wert vorstellen als die positive Grenze vorstellen.
Übe ein paar Mal und du wirst den Dreh raus bekommen!
quelle
2 GB
(Gibt es eine Mindestlänge für Antworten?)
quelle
Angenommen, .NET -
quelle
Wenn Sie Ihre ASCII-Tabelle auswendig kennen und nicht
MaxInt
:!GH6G = 21 47 48 36 47
quelle
Die beste Regel, um es auswendig zu lernen, ist:
21 (magische Zahl!)
47 (nur daran erinnern)
48 (sequentiell!)
36 (21 + 15, beide Magie!)
47 wieder
Es ist auch einfacher, sich 5 Paare als 10 Ziffern zu merken.
quelle
Der einfachste Weg, sich zu erinnern, ist zu betrachten
std::numeric_limits< int >::max()
Zum Beispiel ( von MSDN ),
quelle
Interessanterweise hat Int32.MaxValue mehr Zeichen als 2.147.486.647.
Aber andererseits haben wir Code-Vervollständigung,
Ich denke, alles, was wir uns wirklich merken müssen, ist
Int3<period>M<enter>
, dass wir nur 6 Zeichen in Visual Studio eingeben müssen.UPDATE Aus irgendeinem Grund wurde ich abgelehnt. Der einzige Grund, an den ich denken 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 eingeben oder nicht.
quelle
Iwannagohome
ist einfacher, sich zu merken als298347829
. Kein Grund für eine -1.!=
Tastenanschläge. Für diesen armen .Net-Benutzer ist esin
+.
+ma
+ Return.Denken Sie daran, dass 2 ^ (10 * x) ungefähr 10 ^ (3 * x) ist - Sie sind wahrscheinlich bereits mit Kilobyte / Kibibyte usw. daran gewöhnt. Das heißt:
Da ein int 31 Bits verwendet (+ ~ 1 Bit für das Vorzeichen), verdoppeln Sie einfach 2 ^ 30, um ungefähr 2 Milliarden zu erhalten. Verdoppeln Sie für ein Int ohne Vorzeichen mit 32 Bit erneut 4 Milliarden. Der Fehlerfaktor wird natürlich umso höher, je größer Sie werden, aber Sie müssen nicht den genauen Wert speichern (wenn Sie ihn benötigen, sollten Sie trotzdem eine vordefinierte Konstante dafür verwenden). Der ungefähre Wert ist gut genug, um festzustellen, wann etwas gefährlich nahe am Überlaufen sein könnte.
quelle
So mache ich es, um mich an 2.147.483.647 zu erinnern
Zu einem weiten Savannenviertel verhexte das Optimus-Trio vierzig September
quelle
Was meinst du? Es sollte leicht genug sein, sich daran zu erinnern, dass es 2 ^ 32 ist. Wenn eine Regel den Wert dieser Zahl speichern soll, ist eine praktische Faustregel die Konvertierung zwischen Binär und Dezimalzahl im Allgemeinen:
2 ^ 10 ~ 1000
was 2 ^ 20 ~ 1.000.000 bedeutet
und 2 ^ 30 ~ 1.000.000.000
Das Doppelte (2 ^ 31) ist ungefähr 2 Milliarden, und das Doppelte (2 ^ 32) ist 4 Milliarden.
Es ist eine einfache Möglichkeit, eine grobe Schätzung einer beliebigen Binärzahl zu erhalten. 10 binäre Nullen werden zu 3 Dezimalstellen.
quelle
Denken Sie in Objective-C (iOS & OSX) an folgende Makros:
quelle
Int32 bedeutet, dass Sie 32 Bit zum Speichern Ihrer Nummer zur Verfügung haben. Das höchste Bit ist das Vorzeichenbit. Dies zeigt an, ob die Zahl positiv oder negativ ist. Sie haben also 2 ^ 31 Bits für positive und negative Zahlen.
Wenn Null eine positive Zahl ist, erhalten Sie den logischen Bereich von (zuvor erwähnt)
+2147483647 bis -2147483648
Wenn Sie der Meinung sind, dass dies zu klein ist, verwenden Sie Int64:
+9223372036854775807 bis -9223372036854775808
Und warum zum Teufel willst du dich an diese Nummer erinnern? In Ihrem Code verwenden? Sie sollten immer Int32.MaxValue oder Int32.MinValue in Ihrem Code verwenden, da dies statische Werte (innerhalb des .net-Kerns) sind und daher schneller verwendet werden als das Erstellen eines neuen int mit Code.
Meine Aussage: Wenn Sie diese Nummer aus dem Gedächtnis kennen, geben Sie nur an!
quelle
Denken Sie daran: 21 IQ ITEM 47
Es kann mit jedem Telefonblock entschlüsselt werden, oder Sie können einfach einen auf ein Papier schreiben.
Um mich an "21 IQ ITEM 47" zu erinnern, würde ich mit "Hitman: Codename 47 hatte 21 Missionen, die jeweils für sich IQ IQEMs waren" gehen.
Oder "Ich putze jeden Tag um 21:47 Uhr die Zähne, weil ich einen hohen IQ habe und keine Gegenstände in meinem Mund mag".
quelle
de-encoded with any phone pad
?