non signé: 2³²-1 = 4 · 1024³-1; signé: -2³¹ .. + 2³¹-1, car le bit de signe est le bit le plus élevé. Apprenez simplement 2⁰ = 1 à 2¹⁰ = 1024 et combinez. 1024 = 1k, 1024² = 1M, 1024³ = 1G
comonad
31
Je me souviens généralement que tous les 3 bits représentent un chiffre décimal. Cela m'amène au bon ordre de grandeur: 32 bits, c'est 10 chiffres.
Barmar
8
@JoachimSauer, il peut certainement aider au débogage si vous apprenez à reconnaître au moins ces types de nombres.
Dunaril
72
"si un disque est plein, la suppression de tous les mbytes archivera" (2 lettres, 1 lettre, 4 lettres, 7 lettres, 4 lettres, 8 lettres, 3 lettres, 6 lettres, 4 lettres, 7 lettres)
Mon mnémonique: 2 ^ 10 est très proche de 1000, donc 2 ^ (3 * 10) est 1000 ^ 3 ou environ 1 milliard. L'un des 32 bits est utilisé pour le signe, donc la valeur maximale n'est vraiment que de 2 ^ 31, ce qui représente environ le double du montant que vous obtenez pour 2 ^ (3 * 10): 2 milliards.
16807
164
2147483647 sans virgule.
Vern D.
20
Utilisez simplement: Integer.MAX_VALUEen Java.
Tim
184
Si vous obtenez le tatouage sur votre visage, n'oubliez pas de l'inverser pour qu'il se lise correctement dans le miroir. Sinon, vous verrez 746 384 741,2, ce qui est faux et serait embarrassant.
Larry S
127
2,147,483,647 = 0x7FFFFFFF, si vous voulez vous en souvenir, utilisez simplement hex.
roottraveller
493
La réponse la plus correcte à laquelle je peux penser est Int32.MaxValue.
Avant que cela n'existe, je #define INT32_MIN et INT32_MAX dans tous mes projets.
WildJoe
45
@CamiloMartin Hey. Je m'en veux. Il n'y avait tout simplement plus de place pour plus de tatouages. De toute évidence, l'iso-8859-1 charset et Pi à 31415 décimaux devaient avoir la priorité
sehe
3
Lorsque vous programmez: oui dans 99% des cas. Mais vous voudrez peut-être savoir que c'est quelque chose comme ~ 2 milliards pour planifier des approches de programmation ou lorsque vous travaillez avec des données, bien que ce soit un très grand nombre. :)
Andre Figueiredo
@sehe N'est-ce pas latin1 / Windows 1252 obsolète maintenant? S'il ne peut pas tenir dans les 7 octets de l'ASCII, je ne pense pas qu'il mérite une place dans la mémoire principale. Je veux dire ... toutes les pages de codes UNICODE sont un peu utiles, mais plus d'un méga-espace de peau semble un gaspillage. (Sans compter qu'il n'inclut toujours pas les glyphes descriptifs pour "pageup / pagedown" ou "pagehome / pageend")
1
Cette propriété pourrait être un bon conseil en plus de mentionner le bon numéro. Cependant, je n'aime pas cette réponse car elle ne mentionne qu'une manière non transférable de déterminer la valeur et elle ne mentionne pas non plus pour quels langages de programmation cela fonctionne ...
mozzbozz
439
Si vous pensez que la valeur est trop difficile à retenir dans la base 10, essayez la base 2: 1111111111111111111111111111111
@Nick Whaley: Non, 1111111111111111111111111111111 est positif. 1111111111111111111111111111111111 serait négatif :-)
Curd
58
Base 16 c'est encore plus facile 7FFFFFFF
Nelson Galdeman Graziano
34
@Curd en 11111111111111111111111111111111tant que nombre en base-2 serait toujours positif (un exemple négatif en base-2 serait -1) . Cette séquence de bits n'est négative que si elle représente un nombre complémentaire de 32 bits 2 :)
BlueRaja - Danny Pflughoeft
143
Le plus facile à retenir sera la base 2 147 483 647. Ensuite, tout ce que vous devez vous rappeler est 1.
big_tommy_7bb
82
@ tim_barber_7BB en fait, il est 10
heures
317
si vous vous souvenez du nombre entier de Pi, alors le nombre que vous recherchez est à la position 1,867,996,680 jusqu'à 1,867,996,689 des chiffres décimaux de Pi
La chaîne numérique 2147483647 apparaît au chiffre décimal de 1 867 996 680 de Pi. 3.14 ...... 86181221809936452346 2147483647 10527835665425671614 ...
vous savez, quand j'ai commencé à lire votre réponse, je m'attendais à quelque chose de pratique, comme le 20e chiffre.
JqueryToAddNumbers
95
Cela semble plutôt cool. Avez-vous une autre règle de mémoire à retenir 1 867 996 680? J'ai du mal à me rappeler à quel indice commencer à chercher ....
Alderath
10
" si vous vous souvenez du numéro Pi entier ... " - non, vous ne pouvez pas, c'est irrationnel {comme peut-être un ou deux messages dans ce Q&R} 8-D
SlySven
10
@Alderath Je m'en souviens généralement comme les 10 décimales en sqrt (2) à partir du numéro de chiffre 380,630,713 ....
Henrik
2
@Alderath: La chaîne numérique 1867996680 apparaît au 380,630,713ème chiffre décimal de la racine carrée de 2.
Yair Halberstadt
290
Il s'agit de 10 chiffres, alors faites comme s'il s'agissait d'un numéro de téléphone (en supposant que vous soyez aux États-Unis). 214-748-3647. Je ne recommande pas de l'appeler.
En parlant de s'en souvenir en tant que numéro de téléphone, il semble que certains spammeurs de téléphone l'utilisent: mrnumber.com/1-214-748-3647
Steven
8
"Il n'y a pas d'échange" 748 "à Dallas. Ce numéro est faux." - à partir de la page liée par shambleh
Tarnay Kálmán
104
@Steven, je ne pense pas que ce sont des spammeurs, juste des gens qui ont accidentellement stocké le numéro de téléphone au INTlieu de VARCHARdans MySQL.
Zarel
8
J'ai essayé de l'appeler. Il a sonné plusieurs fois puis est passé à la tonalité d'erreur. = (
Krythic
172
Plutôt que de le considérer comme un grand nombre, essayez de le décomposer et de rechercher des idées associées, par exemple:
2 pauses maximum de billard (une pause maximale est de 147)
4 ans (48 mois)
3 ans (36 mois)
4 ans (48 mois)
Ce qui précède s'applique au plus grand nombre négatif; positif est que moins un.
Peut-être que la ventilation ci-dessus ne sera plus mémorable pour vous (ce n'est guère excitant, n'est-ce pas!), Mais j'espère que vous pourrez trouver des idées qui le sont!
J'ai une meilleure mnémonique: tout ce dont vous avez besoin de vous souvenir est 2 et 31, car il est apparemment exactement 2 ^ 31! Oh, attendez ...
Tamas Czinege
28
@DrJokepu Je ne suis pas sûr de la priorité de l'opérateur ... Est-ce que cela signifie 2^(31!)ou (2^31)!?
Alderath
1
@Lucio Notez que ma réponse concerne en premier lieu le plus grand nombre négatif qui se termine par 48, pas 47
Luke Bennett
144
Plus grande valeur négative (32 bits): -2147483648
(1 << 31)
Plus grande valeur positive (32 bits): 2147483647
~ (1 << 31)
Mnémonique: "ivre AKA cornée"
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
Les mondes les plus difficiles à rappeler Mnémonique. Si vous pouvez mémoriser 0118 999 88199 9119 752 ... 3, vous pouvez le mémoriser.
BenM
11
@Rondles Je pense que c'est en fait 7253 à la fin.
Tim Tisdall
21
Nan. L'âge de boire est de 18 ans ici ... On dirait que je ne peux pas utiliser ce mnémonique, ma vie est ruinée.
Joffrey
4
@Aaren Cordova Ils disaient que stackoverflow ne sera jamais drôle, ne sera rien de plus qu'un site de questions / réponses, je les pointe généralement vers cette réponse. Cette chose ne peut être créée qu'à l'intérieur d'un esprit de génie, je veux dire que c'est de l' Art.
Mohd Abdul Mujib
5
Le plus grand entier négatif de 32 bits, ou 64 bits d'ailleurs, est -1.
Fred Mitchell
75
Quoi qu'il en soit, prenez cette expression régulière (elle détermine si la chaîne contient un entier non négatif sous forme décimale qui n'est pas non plus supérieur à Int32.MaxValue)
Joli! Je pense que la règle 214 devrait être pi - 1. De plus, le masque indique 68 plutôt que 64. =) Pour les mordus de l'aviation comme moi, la valeur 737 devrait être facile à retenir en l'associant au jet de ligne moyen de Boeing.
Vous pouvez aller plus loin. Supprimez la décimale et comparez pi et 2 ^ 31-1. Dans les mêmes positions, vous obtenez 141 vs 147, donc le dernier chiffre devient juste un 7. Puis 592 vs 483, tous sont à un chiffre l'un de l'autre. Et 643 vs 647, c'est que redevenir une chose 7.
Peter Cooper du
@PeterCooper Altho les décimales pour pi commencent par 1415926_5_35 (Notez le 5, pas un 4)
Moberg
15
Mon mnémonique est de prendre 4294967296 (ce qui est facile à retenir) et de diviser par 2
Donc, 2 ^ 31 (signé int max) est 2 ^ 30 (environ 1 milliard) fois 2 ^ 1 (2), soit environ 2 milliards. Et 2 ^ 32 est 2 ^ 30 * 2 ^ 2 soit environ 4 milliards. Cette méthode d'approximation est suffisamment précise, même jusqu'à environ 2 ^ 64 (où l'erreur atteint environ 15%).
Si vous avez besoin d'une réponse exacte, vous devez alors ouvrir une calculatrice.
Approximations pratiques de la capacité d'alignement des mots:
2 ^ 16 ~ = 64 mille // uint16
2 ^ 32 ~ = 4 milliards // uint32, IPv4, unixtime
2 ^ 64 ~ = 16 quintillions (aka 16 milliards de milliards ou 16 millions de milliards) // uint64, "bigint"
@NOhs J'apprécie le lien, mais ma réponse Python concerne "Python 2" (j'ajoute le 2 au titre de la section pour le rendre plus clair). Ma réponse n'est donc pas dépassée. (Mais Python 2, certes, l'est)
Martin Thoma
35
Voici un mnémonique pour se souvenir de 2 ** 31, soustrayez-en un pour obtenir la valeur entière maximale.
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
J'ai utilisé les pouvoirs de deux jusqu'à 18 assez souvent pour m'en souvenir, mais même je n'ai pas pris la peine de mémoriser 2 ** 31. Il est trop facile de calculer selon les besoins ou d'utiliser une constante, ou d'estimer comme 2G.
Il a 32 bits et peut donc stocker 2 ^ 32 valeurs. Pas moins.
JB.
28
Eh bien, à part les blagues, si vous cherchez vraiment une règle de mémoire utile, il y en a une que j'utilise toujours pour me souvenir des grands nombres.
Vous devez décomposer votre numéro en parties de 3 à 4 chiffres et les mémoriser visuellement en utilisant la projection sur le clavier de votre téléphone portable. Il est plus facile de montrer sur une photo:
Comme vous pouvez le voir, il ne vous reste plus qu'à vous souvenir de 3 formes, dont 2 ressemblent à un Tetris L et une ressemble à une tique . Ce qui est certainement beaucoup plus facile que de mémoriser un nombre à 10 chiffres.
Lorsque vous devez rappeler le numéro, rappelez-vous simplement les formes, imaginez / regardez sur un clavier de téléphone et projetez les formes dessus. Peut-être qu'au début, vous devrez regarder le clavier, mais après un peu de pratique, vous vous souviendrez que les nombres vont de haut en bas à droite, vous pourrez donc l'imaginer simplement dans votre tête.
Assurez-vous simplement de vous souvenir de la direction des formes et du nombre de chiffres dans chaque forme (par exemple, dans l'exemple 2147483647, nous avons un Tetris L à 4 chiffres et un L à 3 chiffres).
Vous pouvez utiliser cette technique pour mémoriser facilement tous les numéros importants (par exemple, je me suis souvenu de mon numéro de carte de crédit à 16 chiffres, etc.).
Bonne idée! La forme 1 vous donne 2147, la forme 2 vous donne 483 et la forme 3 est censée donner 647, mais comme dessiné, cela pourrait être interprété comme 6 5 47. Comment savoir quand inclure tous les nombres croisés (comme dans la forme 1 ) vs quand en sauter (comme dans la forme 3)? Vous devez également mémoriser que les formes codent respectivement 4, 3 et 3 chiffres. Ou vous pouvez dessiner la forme 3 avec un arc de 6 à 4 au lieu d'une ligne droite.
jskroch
@Squinch Eh bien, en particulier pour se souvenir de int.Max, cela ne devrait pas être un problème car vous savez peut-être qu'il s'agit d'environ 2 milliards, donc il contient 10 chiffres (et cela signifie que si la première forme a 4 chiffres, le deuxième et le troisième les formes en ont 3 en conséquence). Cependant, c'est un bon point si vous souhaitez utiliser cette approche pour n'importe quel nombre. De plus, il y a des nombres qui sont difficiles à retenir en utilisant cette façon (par exemple 1112 ou quelque chose). D'un autre côté, il ne devrait pas être difficile de se souvenir de ce nombre de toute façon. Je dirais donc que cela dépend de vous, faites-moi savoir si vous trouvez quelque chose d'intéressant pour cela. :)
Ivan Yurchenko
Oui, je pensais utiliser cette méthode pour rappeler une séquence arbitraire de chiffres, mais pour cette valeur int.Max particulière, votre méthode fonctionne assez bien. Comme vous l'avez dit, les chiffres répétés sont un problème. En fait, toute séquence répétée (comme 2323) est un problème. Toute séquence qui se croise (comme 2058) est difficile à dessiner. Toute technique de mémorisation nécessite que vous vous souveniez de plusieurs informations. C'est votre préférence personnelle quels types d'informations vous conviennent le mieux.
jskroch
1
C'est ainsi que je me souviens des codes PIN et similaires, mais tout d'un coup, vous devez le saisir sur votre ordinateur et vous rendre compte que le pavé numérique est inversé verticalement. C'est donc un peu un défi.
nibarius
Quelqu'un à Dallas, au Texas , a reçu de nombreux appels téléphoniques étranges et n'a aucune idée que vous êtes @IvanYurchenko à blâmer.
Bob Stein
21
La façon la plus simple de le faire pour les entiers est d'utiliser hexadécimal, à condition qu'il n'y ait pas quelque chose comme Int.maxInt (). La raison en est la suivante:
Comment cela marche-t-il? C'est très similaire à la tactique binaire, et chaque chiffre hexadécimal fait exactement 4 bits. De plus, de nombreux compilateurs prennent en charge l'hex beaucoup mieux que le binaire.
F hex to binary: 1111
8 hex to binary: 1000
7 hex to binary: 0111
0 hex to binary: 0000
Donc 7F est égal à 01111111 / 7FFF est égal à 0111111111111111. De plus, si vous l'utilisez pour une "constante incroyablement élevée", 7F ... est un hex sûr, mais il est assez facile d'essayer 7F et 80 et de simplement les imprimer à votre écran pour voir lequel c'est.
0x7FFF + 0x0001 = 0x8000, donc votre perte n'est qu'un nombre, donc l'utilisation de 0x7F ... n'est généralement pas un mauvais compromis pour un code plus fiable, surtout une fois que vous commencez à utiliser 32 bits ou plus
Commencez par écrire 47 deux fois (vous aimez l' agent 47 , n'est-ce pas?), En gardant les espaces comme indiqué (chaque tiret est un emplacement pour un seul chiffre. 2 premiers emplacements, puis 4)
--47----47
Pensez que vous avez 12en main (car 12 = une douzaine). Multipliez-le par le 4premier chiffre du numéro de l'agent 47 47, et placez le résultat à droite de la première paire que vous avez déjà
12 * 4 = 48
--4748--47 <-- after placing 48 to the right of first 47
Ensuite, multipliez 12par 3(afin de créer le deuxième chiffre du numéro de l'agent 47, qui est 7, vous avez besoin 7 - 4 = 3) et placez le résultat à droite des 2 premières paires, le dernier emplacement de paire
12 * 3 = 36
--47483647 <-- after placing 36 to the right of first two pairs
Enfin, faites glisser les chiffres un par un depuis votre main à partir du chiffre le plus à droite (2 dans ce cas) et placez-les dans le premier emplacement vide que vous obtenez
2-47483647 <-- after placing 2
2147483647 <-- after placing 1
Voilà! Pour la limite négative, vous pouvez considérer cela comme 1 de plus en valeur absolue que la limite positive.
C'est pourquoi la limite de RAM que vous pouvez avoir sur un ordinateur 32 bits est de 4 Go
Serj Sagan
3
la valeur de 4 Go est correcte avec des entiers non signés. si vous avez un int signé, vous devez évidemment diviser par 2 pour obtenir la valeur maximale possible
SwissCoder
3
En 32 bits, il y a 2 Go de réserve d'espace mémoire pour le processus utilisateur et 2 Go pour le noyau. Il peut être configuré pour que le noyau ait seulement 1 Go réservé
// 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;
}
Fait intéressant, Int32.MaxValue a plus de caractères que 2147486647.
Mais là encore, nous avons l'achèvement du code,
Donc je suppose que tout ce que nous avons vraiment à mémoriser Int3<period>M<enter>, c'est seulement 6 caractères à taper dans Visual Studio.
MISE
À JOUR Pour une raison quelconque, j'ai été rétrogradé. La seule raison pour laquelle je peux penser, c'est qu'ils n'ont pas compris ma première déclaration.
"Int32.MaxValue" prend au plus 14 caractères à taper. 2.147.486.647 prend 10 ou 13 caractères à taper selon que vous insérez ou non les virgules.
Mais ce qui compte, ce n'est pas le nombre de caractères que vous devez taper, mais comment le mémoriser. Je suis sûr qu'il Iwannagohomeest plus facile de mémoriser que 298347829. Aucune raison pour un -1, cependant.
glglgl
3
Cela pourrait être inférieur à cela, créez simplement votre propre extrait de valeur maximale, "imv" <tab> <tab> peut-être?
BradleyDotNET du
4
Caractères !=frappés. Pour ce pauvre utilisateur .Net, c'est in+ .+ ma+ Return.
Michael - Où est Clay Shirky
11
N'oubliez pas que 2 ^ (10 * x) est environ 10 ^ (3 * x) - vous êtes probablement déjà habitué à cela avec des kilo-octets / kibio, etc. C'est-à-dire:
2^10 = 1024 ~= one thousand
2^20 = 1024^2 = 1048576 ~= one million
2^30 = 1024^3 = 1073741824 ~= one billion
Puisqu'un int utilise 31 bits (+ ~ 1 bit pour le signe), il suffit de doubler 2 ^ 30 pour obtenir environ 2 milliards. Pour un entier non signé utilisant 32 bits, doublez à nouveau pour 4 milliards. Le facteur d'erreur augmente plus vous augmentez bien sûr, mais vous n'avez pas besoin que la valeur exacte soit mémorisée (si vous en avez besoin, vous devez de toute façon utiliser une constante prédéfinie). La valeur approximative est suffisamment bonne pour remarquer quand quelque chose pourrait être dangereusement proche d'un débordement.
Hors sujet: 2 ^ 4 = 4 ^ 2, donc l'exponentiation est commutative!
Adam Liss
10
@ Pier-OlivierThibault non, je l'utilise tout le temps! maintenant, je dois découvrir pourquoi tous mes calculs se trompent. probablement quelque chose à voir avec des erreurs de multiplication. de toute façon, au revoir!
tckmn
9
voici comment je me souviens de 2147483647
Dans un quartier de savane éloignée, le trio Optimus hexa quarante septenaires
2 - To
1 - A
4 - Far
7 - Savannah
4 - Quarter
8 - Optimus
3 - Trio
6 - Hexed
4 - Forty
7 - Septenary
Que voulez-vous dire? Il devrait être assez facile de se rappeler qu'il s'agit de 2 ^ 32. Si vous souhaitez qu'une règle mémorise la valeur de ce nombre, une règle pratique est pour la conversion entre binaire et décimal en général:
2 ^ 10 ~ 1000
ce qui signifie 2 ^ 20 ~ 1 000 000
et 2 ^ 30 ~ 1 000 000 000
Le double (2 ^ 31) équivaut à environ 2 milliards, et le double (2 ^ 32) à 4 milliards.
C'est un moyen facile d'obtenir une estimation approximative de tout nombre binaire. 10 zéros en binaire deviennent 3 zéros en décimal.
Int32 signifie que vous disposez de 32 bits pour stocker votre numéro. Le bit le plus élevé est le bit de signe, cela indique si le nombre est positif ou négatif. Vous avez donc 2 ^ 31 bits pour les nombres positifs et négatifs.
Avec zéro étant un nombre positif, vous obtenez la plage logique de (mentionnée précédemment)
+2147483647 à -2147483648
Si vous pensez que c'est trop petit, utilisez Int64:
+9223372036854775807 à -9223372036854775808
Et pourquoi diable vous voulez vous souvenir de ce numéro? À utiliser dans votre code? Vous devez toujours utiliser Int32.MaxValue ou Int32.MinValue dans votre code car ce sont des valeurs statiques (dans le noyau .net) et donc plus rapides à utiliser que la création d'un nouvel int avec du code.
Ma déclaration: si vous connaissez ce numéro par la mémoire .. vous venez de montrer!
La plupart des ordinateurs modernes stockent les numéros au format «deux compliments». Le bit le plus élevé (et non le plus bas) est le signe. La chose intéressante avec le complément à deux est que les nombres -ve sont gérés par les règles de débordement naturel du CPU. ie 0xFF est 8 bits -1, ajoutez cela à 0x01 (+1) et vous obtenez 0x100. Tronquez les bits supérieurs à 8 à 0x00 et vous avez votre réponse.
Tom Leys
5
Rappelez-vous ceci: 21 IQ ITEM 47
Il peut être décodé avec n'importe quel clavier téléphonique, ou vous pouvez simplement en écrire un vous-même sur un papier.
Pour me souvenir de "21 IQ ITEM 47", je choisirais "Hitman: Codename 47 avait 21 missions, qui étaient chacune des IQ ITEM".
Ou "Je nettoie les dents à 21h47 tous les jours, car j'ai un QI élevé et je n'aime pas les articles dans ma bouche".
Réponses:
C'est 2.147.483.647. Le moyen le plus simple de le mémoriser est via un tatouage.
la source
Integer.MAX_VALUE
en Java.La réponse la plus correcte à laquelle je peux penser est
Int32.MaxValue
.la source
Si vous pensez que la valeur est trop difficile à retenir dans la base 10, essayez la base 2: 1111111111111111111111111111111
la source
11111111111111111111111111111111
tant que nombre en base-2 serait toujours positif (un exemple négatif en base-2 serait-1
) . Cette séquence de bits n'est négative que si elle représente un nombre complémentaire de 32 bits 2 :)si vous vous souvenez du nombre entier de Pi, alors le nombre que vous recherchez est à la position 1,867,996,680 jusqu'à 1,867,996,689 des chiffres décimaux de Pi
source: http://www.subidiom.com/pi/
la source
Il s'agit de 10 chiffres, alors faites comme s'il s'agissait d'un numéro de téléphone (en supposant que vous soyez aux États-Unis). 214-748-3647. Je ne recommande pas de l'appeler.
la source
INT
lieu deVARCHAR
dans MySQL.Plutôt que de le considérer comme un grand nombre, essayez de le décomposer et de rechercher des idées associées, par exemple:
Ce qui précède s'applique au plus grand nombre négatif; positif est que moins un.
Peut-être que la ventilation ci-dessus ne sera plus mémorable pour vous (ce n'est guère excitant, n'est-ce pas!), Mais j'espère que vous pourrez trouver des idées qui le sont!
la source
2^(31!)
ou(2^31)!
?Plus grande valeur négative (32 bits): -2147483648
(1 << 31)
Plus grande valeur positive (32 bits): 2147483647
~ (1 << 31)
Mnémonique: "ivre AKA cornée"
la source
Quoi qu'il en soit, prenez cette expression régulière (elle détermine si la chaîne contient un entier non négatif sous forme décimale qui n'est pas non plus supérieur à Int32.MaxValue)
[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]
Peut-être que cela vous aiderait à vous souvenir.
la source
2147483647
. Ce serait d'une grande aide pour l'OPVoilà comment je me suis souvenu
2147483647
:Écrivez-les horizontalement:
Vous avez maintenant 2147483647.
J'espère que cela aide au moins un peu.
la source
Donc, 2 ^ 31 (signé int max) est 2 ^ 30 (environ 1 milliard) fois 2 ^ 1 (2), soit environ 2 milliards. Et 2 ^ 32 est 2 ^ 30 * 2 ^ 2 soit environ 4 milliards. Cette méthode d'approximation est suffisamment précise, même jusqu'à environ 2 ^ 64 (où l'erreur atteint environ 15%).
Si vous avez besoin d'une réponse exacte, vous devez alors ouvrir une calculatrice.
Approximations pratiques de la capacité d'alignement des mots:
la source
Prenez simplement une calculatrice décente et tapez "7FFFFFFF" en mode hexadécimal, puis passez en décimal.
2147483647.
la source
Int32.MaxValue
/numeric_limits<int32_t>::max()
C'est à peu près
2.1 * 10^9
. Pas besoin de connaître l'exact2^{31} - 1 = 2,147,483,647
.C
Vous pouvez le trouver en C comme ça:
donne (enfin, sans le
,
)C ++ 11
Java
Vous pouvez également obtenir cela avec Java:
Mais gardez à l'esprit que les entiers Java sont toujours signés.
Python 2
Python a des entiers de précision arbitraires. Mais en Python 2, ils sont mappés sur des entiers C. Vous pouvez donc faire ceci:
Donc, Python passe
long
lorsque l'entier devient plus grand que2^31 -1
la source
Voici un mnémonique pour se souvenir de 2 ** 31, soustrayez-en un pour obtenir la valeur entière maximale.
a = 1, b = 2, c = 3, d = 4, e = 5, f = 6, g = 7, h = 8, i = 9
J'ai utilisé les pouvoirs de deux jusqu'à 18 assez souvent pour m'en souvenir, mais même je n'ai pas pris la peine de mémoriser 2 ** 31. Il est trop facile de calculer selon les besoins ou d'utiliser une constante, ou d'estimer comme 2G.
la source
32 bits, un pour le signe, 31 bits d'information:
Pourquoi -1?
Parce que le premier est zéro, le plus grand est donc le nombre moins un .
EDIT pour cantfindaname88
Le compte est 2 ^ 31 mais le plus grand ne peut pas être 2147483648 (2 ^ 31) car nous comptons à partir de 0, pas 1.
Une autre explication avec seulement 3 bits: 1 pour le signe, 2 pour l'information
Ci-dessous toutes les valeurs possibles avec 3 bits: (2 ^ 3 = 8 valeurs)
la source
Eh bien, il a 32 bits et peut donc stocker 2 ^ 32 valeurs différentes. La moitié d'entre eux sont négatifs.
La solution est de 2147483647
Et le plus bas est −2 147 483 648.
(Notez qu'il existe une autre valeur négative.)
la source
Eh bien, à part les blagues, si vous cherchez vraiment une règle de mémoire utile, il y en a une que j'utilise toujours pour me souvenir des grands nombres.
Vous devez décomposer votre numéro en parties de 3 à 4 chiffres et les mémoriser visuellement en utilisant la projection sur le clavier de votre téléphone portable. Il est plus facile de montrer sur une photo:
Comme vous pouvez le voir, il ne vous reste plus qu'à vous souvenir de 3 formes, dont 2 ressemblent à un Tetris L et une ressemble à une tique . Ce qui est certainement beaucoup plus facile que de mémoriser un nombre à 10 chiffres.
Lorsque vous devez rappeler le numéro, rappelez-vous simplement les formes, imaginez / regardez sur un clavier de téléphone et projetez les formes dessus. Peut-être qu'au début, vous devrez regarder le clavier, mais après un peu de pratique, vous vous souviendrez que les nombres vont de haut en bas à droite, vous pourrez donc l'imaginer simplement dans votre tête.
Assurez-vous simplement de vous souvenir de la direction des formes et du nombre de chiffres dans chaque forme (par exemple, dans l'exemple 2147483647, nous avons un Tetris L à 4 chiffres et un L à 3 chiffres).
Vous pouvez utiliser cette technique pour mémoriser facilement tous les numéros importants (par exemple, je me suis souvenu de mon numéro de carte de crédit à 16 chiffres, etc.).
la source
La façon la plus simple de le faire pour les entiers est d'utiliser hexadécimal, à condition qu'il n'y ait pas quelque chose comme Int.maxInt (). La raison en est la suivante:
Max valeurs non signées
Valeurs signées, en utilisant 7F comme valeur signée maximale
Valeurs signées, en utilisant 80 comme valeur signée maximale
Comment cela marche-t-il? C'est très similaire à la tactique binaire, et chaque chiffre hexadécimal fait exactement 4 bits. De plus, de nombreux compilateurs prennent en charge l'hex beaucoup mieux que le binaire.
Donc 7F est égal à 01111111 / 7FFF est égal à 0111111111111111. De plus, si vous l'utilisez pour une "constante incroyablement élevée", 7F ... est un hex sûr, mais il est assez facile d'essayer 7F et 80 et de simplement les imprimer à votre écran pour voir lequel c'est.
0x7FFF + 0x0001 = 0x8000, donc votre perte n'est qu'un nombre, donc l'utilisation de 0x7F ... n'est généralement pas un mauvais compromis pour un code plus fiable, surtout une fois que vous commencez à utiliser 32 bits ou plus
la source
Commencez par écrire 47 deux fois (vous aimez l' agent 47 , n'est-ce pas?), En gardant les espaces comme indiqué (chaque tiret est un emplacement pour un seul chiffre. 2 premiers emplacements, puis 4)
Pensez que vous avez
12
en main (car 12 = une douzaine). Multipliez-le par le4
premier chiffre du numéro de l'agent 4747
, et placez le résultat à droite de la première paire que vous avez déjàEnsuite, multipliez
12
par3
(afin de créer le deuxième chiffre du numéro de l'agent 47, qui est7
, vous avez besoin7 - 4 = 3
) et placez le résultat à droite des 2 premières paires, le dernier emplacement de paireEnfin, faites glisser les chiffres un par un depuis votre main à partir du chiffre le plus à droite (2 dans ce cas) et placez-les dans le premier emplacement vide que vous obtenez
Voilà! Pour la limite négative, vous pouvez considérer cela comme 1 de plus en valeur absolue que la limite positive.
Pratiquez plusieurs fois et vous aurez le coup!
la source
2 Go
(y a-t-il une longueur minimale pour les réponses?)
la source
En supposant que .NET -
la source
Si vous connaissez par cœur votre table ASCII et non
MaxInt
:!GH6G = 21 47 48 36 47
la source
La meilleure règle pour la mémoriser est:
21 (nombre magique!)
47 (rappelez-vous juste)
48 (séquentiel!)
36 (21 + 15, les deux magies!)
47 à nouveau
Il est également plus facile de mémoriser 5 paires que 10 chiffres.
la source
La façon la plus simple de se souvenir est de regarder
std::numeric_limits< int >::max()
Par exemple (à partir de MSDN ),
la source
Fait intéressant, Int32.MaxValue a plus de caractères que 2147486647.
Mais là encore, nous avons l'achèvement du code,
Donc je suppose que tout ce que nous avons vraiment à mémoriser
Int3<period>M<enter>
, c'est seulement 6 caractères à taper dans Visual Studio.MISE À JOUR Pour une raison quelconque, j'ai été rétrogradé. La seule raison pour laquelle je peux penser, c'est qu'ils n'ont pas compris ma première déclaration.
"Int32.MaxValue" prend au plus 14 caractères à taper. 2.147.486.647 prend 10 ou 13 caractères à taper selon que vous insérez ou non les virgules.
la source
Iwannagohome
est plus facile de mémoriser que298347829
. Aucune raison pour un -1, cependant.!=
frappés. Pour ce pauvre utilisateur .Net, c'estin
+.
+ma
+ Return.N'oubliez pas que 2 ^ (10 * x) est environ 10 ^ (3 * x) - vous êtes probablement déjà habitué à cela avec des kilo-octets / kibio, etc. C'est-à-dire:
Puisqu'un int utilise 31 bits (+ ~ 1 bit pour le signe), il suffit de doubler 2 ^ 30 pour obtenir environ 2 milliards. Pour un entier non signé utilisant 32 bits, doublez à nouveau pour 4 milliards. Le facteur d'erreur augmente plus vous augmentez bien sûr, mais vous n'avez pas besoin que la valeur exacte soit mémorisée (si vous en avez besoin, vous devez de toute façon utiliser une constante prédéfinie). La valeur approximative est suffisamment bonne pour remarquer quand quelque chose pourrait être dangereusement proche d'un débordement.
la source
voici comment je me souviens de 2147483647
Dans un quartier de savane éloignée, le trio Optimus hexa quarante septenaires
la source
Que voulez-vous dire? Il devrait être assez facile de se rappeler qu'il s'agit de 2 ^ 32. Si vous souhaitez qu'une règle mémorise la valeur de ce nombre, une règle pratique est pour la conversion entre binaire et décimal en général:
2 ^ 10 ~ 1000
ce qui signifie 2 ^ 20 ~ 1 000 000
et 2 ^ 30 ~ 1 000 000 000
Le double (2 ^ 31) équivaut à environ 2 milliards, et le double (2 ^ 32) à 4 milliards.
C'est un moyen facile d'obtenir une estimation approximative de tout nombre binaire. 10 zéros en binaire deviennent 3 zéros en décimal.
la source
Dans Objective-C (iOS & OSX), rappelez-vous simplement ces macros:
la source
Int32 signifie que vous disposez de 32 bits pour stocker votre numéro. Le bit le plus élevé est le bit de signe, cela indique si le nombre est positif ou négatif. Vous avez donc 2 ^ 31 bits pour les nombres positifs et négatifs.
Avec zéro étant un nombre positif, vous obtenez la plage logique de (mentionnée précédemment)
+2147483647 à -2147483648
Si vous pensez que c'est trop petit, utilisez Int64:
+9223372036854775807 à -9223372036854775808
Et pourquoi diable vous voulez vous souvenir de ce numéro? À utiliser dans votre code? Vous devez toujours utiliser Int32.MaxValue ou Int32.MinValue dans votre code car ce sont des valeurs statiques (dans le noyau .net) et donc plus rapides à utiliser que la création d'un nouvel int avec du code.
Ma déclaration: si vous connaissez ce numéro par la mémoire .. vous venez de montrer!
la source
Rappelez-vous ceci: 21 IQ ITEM 47
Il peut être décodé avec n'importe quel clavier téléphonique, ou vous pouvez simplement en écrire un vous-même sur un papier.
Pour me souvenir de "21 IQ ITEM 47", je choisirais "Hitman: Codename 47 avait 21 missions, qui étaient chacune des IQ ITEM".
Ou "Je nettoie les dents à 21h47 tous les jours, car j'ai un QI élevé et je n'aime pas les articles dans ma bouche".
la source
de-encoded with any phone pad
?