Maison >Problème commun >plage d'entiers de type int

plage d'entiers de type int

尚
original
2019-06-20 11:38:3176841parcourir

plage d'entiers de type int

La plage de int est -2147483648 ~ 2147483647.

La méthode de calcul est la suivante :

La plage de variables de type int 32 bits dans l'ordinateur, où le type int est un entier signé.

Les nombres positifs sont représentés dans les ordinateurs sous forme de codes originaux, et le bit le plus élevé est le bit de signe :

Le code original de 1 est 0000 0000 0000 0000 0000 0000 0000 0001

Le code original de 2147483647 Le code est 0111 1111 1111 1111 1111 1111 1111 1111

Donc, le plus grand entier positif est 2147483647

Les nombres négatifs sont représentés comme des compléments dans les ordinateurs, et le bit le plus élevé est le bit de signe :

-1 :

Le code d'origine est 1000 0000 0000 0000 0000 0000 0000 0001, le code inverse de

est 1111 1111 1111 1111 1111 1111 11 1110,

Le complément est 1111 1111 1111 1111 1111 1111 1111 1111

-2147483647 :

le code original est 1111 1111 1111 1111 1111 1111 1111,

le code inversé est 1000 0000 0000 0000 0000 0000 0000 0000, le complément de

est 1000 0000 0000 0000 0000 0000 0000 0001

Donc le plus petit nombre négatif est -2147483647 ? Faux, non.

En binaire, il existe deux méthodes de table pour 0. Le code original de

+0 est 0000 0000 0000 0000 0000 0000 0000 0000, le code original de

-0 est 1000 0000 0000 0000 0000 0000 0000 0000, >

Parce que 0 Un seul est nécessaire, utilisez donc -0 comme plus petit nombre -2147483648. Le complément de

-2147483648 est exprimé par 1000 0000 0000 0000 0000 0000 0000 0000, et il n'y a pas de code original en 32 bits.

Notez que ce complément n'est pas le vrai complément. Le vrai complément est 1 1000 0000 0000 0000 0000 0000 0000 0000, débordement.

Donc, l'entier de type int 32 bits signé est -2147483648~2147483647

La programmation peut appeler directement la fonction pour trouver la plage :

#include <limits.h>
#include<stdio.h>
int max = INT_MAX;//最大数
int min = INT_MIN;//最小数
int main(){
printf("max = %d\nmin = %d\n", max, min);
return 0;
}

plage dentiers de type int

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn