Maison > Article > développement back-end > Quelle est la plage de valeurs de data int en langage C ?
En C++, int occupe 4 octets, 32 bits et la plage de données est -2147483648~2147483647[-2^31~2^31-1]. Les données de type int sont des données entières signées et leur bit le plus élevé est le bit de signe (0 signifie positif, 1 signifie négatif).
En C++, int occupe 4 octets, 32 bits et la plage de données est -2147483648~2147483647[-2^31~2^31 -1].
Processus de réponse détaillé, en prenant deux octets comme exemple :
En C, les données de type int sont des données entières signées, et leur bit le plus élevé est le bit de signe ( 0 signifie positif , 1 signifie négatif).
1 octet équivaut à 8 bits binaires Dans de nombreux systèmes informatiques, le complément à deux est généralement utilisé pour représenter les nombres signés (système complémentaire).
Code original : le bit le plus élevé est le bit de signe (0 signifie positif, 1 signifie négatif), et les autres bits représentent la valeur absolue du nombre de la manière habituelle.
Code inverse : pour un livre signé, le code inverse d'un nombre positif est le même que son code d'origine, et le code inverse d'un nombre négatif est l'inversion au niveau du bit de tous les bits du code d'origine sauf le signe peu.
Code complémentaire : Le code complémentaire d'un nombre positif est le même que son code d'origine, et le code complémentaire d'un nombre négatif est son code inverse avec 1 ajouté au bit le plus bas.
Deux octets, donc le code binaire original maximum est 0111 1111 1111 1111 = 2^15 - 1 = 32767.
Le minimum est 1111 1111 1111 1111 = - (2^15 - 1) = -32767.
L'expression de 0 dans le code original peut être divisée en positif et négatif [+0] original = 0000 0000 0000 0000 [-0] original =1000 0000 0000 0000 ;
Ainsi, lorsqu'elle est exprimée en code binaire original, la plage est de -32767 ~ -0 et 0 ~ 32767. Comme il y a deux 0, le nombre de valeurs différentes est de 2 ^ 16 - 1.
Lorsque les ordinateurs utilisent le complément stationnaire pour stocker des données, la représentation de 0 est unique : [+0] complément = [-0] complément = 0000 0000 0000 0000
À ce moment, le positif nombre Le codage reste inchangé, de 0000 0000 0000 0000 ~ 0111 1111 1111 1111 représente toujours 0 ~ 32767.
Les nombres négatifs sont représentés par la règle du complément, c'est-à-dire que le complément de -32767 est 1000 0000 0000 0001.
Il y aura donc un code de plus dans le code complément que le code d'origine. Ce code est 1000 0000 0000 0000, car il est impossible qu'un code original devienne 1000 0000 0000 0000 une fois converti en code complément. , donc les gens Il est précisé que le codage du complément à un de 1000 0000 0000 0000 est -32768.
Conclusion : lorsque les données de type int occupent deux octets, elles peuvent représenter 2^16 changements. Le bit le plus élevé est le bit de signe, il y a donc 2^15 changements en positif et en négatif, car 0 occupe également un type. , donc La valeur maximale des nombres positifs et négatifs n'est pas symétrique, c'est-à-dire que la plage de valeurs de ces données de type int est -32768 ~ 32767.
Informations étendues :
Utilisation int :
Méthode de définition :
int i;//Définir la variable entière i
int i=1;//Définir la variable entière i et l'initialiser à 1
Définir la constante :
const int i ;//Erreur de compilation, car les constantes doivent recevoir une valeur initiale
const int i=1;//Définir la constante i avec une valeur de 1
Constantes définies par Java :
final int i=1;//Définir la constante i avec la valeur 1
Tutoriel recommandé : "Langage C"
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!