web-dev-qa-db-fra.com

Quelle est la valeur minimale d'un entier signé 32 bits?

Quelle est la valeur minimale d'un nombre entier signé de 32 bits, se trouve être la question de sécurité "défi" afin de créer un compte sur [ce site Web] (edit: link is now malware) curieux et ennuyé). 

J'ai supposé qu'ils parlaient d'un int typique de 32 bits qui peut stocker des nombres aussi gros que 2,147,483,647. Mais quand j'ai essayé -2147483647, il m'a répondu que j'avais mal compris la question. J'ai essayé plusieurs variantes telles que -2,147,483,647 mais rien ne fonctionne ... 

Est-ce que j'interprète mal la question ou y a-t-il un problème avec le site Web?

PS j'ai aussi essayé -2 147 483 648 comme suggéré

Voici une photo enter image description here

13
java

La taille la plus utilisée d'un entier est 32 bits. Le dernier bit est utilisé pour distinguer les nombres positifs et négatifs. Si le dernier bit n'est PAS activé, le nombre est positif. Par conséquent, le nombre maximal positif est 0x7FFFFFFF = (1<<31)-1 = 2147483647 (le dernier bit n'est pas défini).

Pour les nombres négatifs, la notation du complément à deux est largement utilisée. Vous pouvez identifier la contrepartie du nombre positif en inversant tous ses bits et en ajoutant 1. Ainsi, la contrepartie de l'entier maximal est 0x80000001; cependant, il s'agit de ET NON le nombre minimal.

Le nombre minimal dans la notation du complément à deux est 0x80000000 = -2147483648. Le fait intéressant à propos de ce nombre est qu'il est égal à son propre complément, c'est-à-dire que l'inversion de tous les bits a pour résultat 0x7FFFFFFF et l'ajout de 1 permet d'obtenir 0x80000000, ce qui correspond à l'original nombre.

En savoir plus sur la notation du complément à deux dans wikipedia .

25
Tim

Les entiers 32 bits signés peuvent descendre à -2,147,483,648

5
Zack Newsham

Peut-être que ITS demande le numéro sous forme binaire ou hexadécimale?

0
schreibikus