1380 votes

Quelle est la valeur maximale d'un int32 ?

Je n'arrive jamais à me souvenir du numéro. J'ai besoin d'une règle de mémoire.

48 votes

Non signé : 2³²-1 = 4-1024³-1 ; signé : -2³¹ +2³¹-1, car le bit de signe est le bit le plus élevé. Il suffit d'apprendre 2=1 à 2¹=1024 et de combiner. 1024=1k, 1024²=1M, 1024³=1G

31 votes

Je me souviens généralement que tous les 3 bits représentent environ un chiffre décimal. Cela me permet d'atteindre le bon ordre de grandeur : 32 bits, c'est 10 chiffres.

8 votes

@JoachimSauer cela peut certainement aider au débogage si vous apprenez au moins à reconnaître ce genre de chiffres.

5069voto

Ben Hoffstein Points 44398

C'est 2,147,483,647. Le moyen le plus facile de le mémoriser est de se faire tatouer.

83 votes

Mon moyen mnémotechnique : 2^10 est très proche de 1000, donc 2^(3*10) est 1000^3 ou environ 1 milliard. Un des 32 bits est utilisé pour le signe, donc la valeur maximale n'est en réalité que 2^31, ce qui est environ le double de la valeur obtenue pour 2^(3*10) : 2 milliards.

1 votes

@16807 il y a des bits de zéro pour le signe (sur la plupart des architectures au moins) s'il y avait un bit utilisé pour le signe il y aurait deux zéros et la valeur absolue du nombre min et max serait la même mais ce n'est pas le cas. il y a un nombre négatif de plus que de nombres positifs parce que la représentation la plus largement utilisée est le complément à deux.

1 votes

@RuneFS assez juste. Ce que je veux dire, c'est qu'il y a 32 bits mais que les extrêmes doivent être proches de 2^31. De toute façon, le moyen mnémotechnique n'est censé être précis qu'au milliard près.

493voto

Adrian Clark Points 7269

La réponse la plus correcte à laquelle je peux penser est Int32.MaxValue .

18 votes

Avant que cela n'existe, j'avais l'habitude de #definir INT32_MIN et INT32_MAX dans tous mes projets.

45 votes

Hey. Je n'aime pas ça. Il n'y avait tout simplement pas de place pour d'autres tatouages. Évidemment, le jeu de caractères iso-8859-1 et les décimales de Pi à 31415 ont dû être prioritaires.

3 votes

Lorsque vous programmez : oui dans 99% des cas. Mais vous voudrez peut-être savoir qu'il s'agit de quelque chose comme ~ 2 milliards pour planifier des approches de programmation ou lorsque vous travaillez avec des données, même si c'est un très grand nombre. :)

439voto

Curd Points 4670

Si vous pensez que la valeur est trop difficile à retenir en base 10, essayez en base 2 : 1111111111111111111111111111111

3 votes

Attendez une minute... Ce chiffre est négatif !

145 votes

@Nick Whaley : Non, 111111111111111111111111111111111 est positif. 111111111111111111111111111111111111 serait négatif :-)

58 votes

En base 16, c'est encore plus facile 7FFFFFFFFF

290voto

WildJoe Points 2515

Il comporte 10 chiffres, alors faites comme si c'était un numéro de téléphone (en supposant que vous êtes aux États-Unis). 214-748-3647. Je ne recommande pas de l'appeler.

13 votes

En parlant de s'en souvenir comme d'un numéro de téléphone, il semble que certains spammeurs téléphoniques l'utilisent : mrnumber.com/1-214-748-3647

8 votes

"Il n'y a pas de centrale "748" à Dallas. Ce numéro est faux." - de la page liée par shambleh

104 votes

@Steven Je ne pense pas qu'il s'agisse de spammeurs, juste de personnes qui ont accidentellement stocké le numéro de téléphone en tant qu'adresse e-mail. INT au lieu de VARCHAR dans MySQL.

172voto

Luke Bennett Points 16100

Plutôt que de penser à un seul grand nombre, essayez de le décomposer et de chercher des idées associées, par exemple :

  • 2 pauses snooker maximum (une pause maximum 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 ; le positif est ce moins un.

Peut-être que la répartition ci-dessus ne sera pas 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 seront !

99 votes

C'est l'un des dispositifs mnémoniques les plus compliqués que j'ai vus. Impressionnant.

9 votes

Heh, des gens comme Derren Brown préconisent en fait ce genre d'approche - décomposer un nombre en quelque chose d'aléatoire mais qui est plus mémorable qu'un simple ensemble de nombres : channel4.com/entertainment/tv/microsites/M/mindcontrol/remember/

19 votes

J'ai un meilleur moyen mnémotechnique : tout ce que vous devez retenir est 2 et 31, car apparemment c'est exactement 2^31 ! Oh, attendez...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X