En C , le langage lui-même ne détermine pas la représentation de certains types de données. Il peut varier d'une machine à l'autre, sur les systèmes embarqués, il int
peut avoir une largeur de 16 bits, bien qu'il soit généralement de 32 bits.
La seule exigence est que short int
<= int
<= long int
par taille. En outre, il existe une recommandation qui int
devrait représenter la capacité native du processeur .
Tous les types sont signés. Le unsigned
modificateur vous permet d'utiliser le bit le plus élevé dans le cadre de la valeur (sinon il est réservé au bit de signe).
Voici un petit tableau des valeurs possibles pour les types de données possibles:
width minimum maximum
signed 8 bit -128 +127
signed 16 bit -32 768 +32 767
signed 32 bit -2 147 483 648 +2 147 483 647
signed 64 bit -9 223 372 036 854 775 808 +9 223 372 036 854 775 807
unsigned 8 bit 0 +255
unsigned 16 bit 0 +65 535
unsigned 32 bit 0 +4 294 967 295
unsigned 64 bit 0 +18 446 744 073 709 551 615
En Java , la spécification du langage Java détermine la représentation des types de données.
L'ordre est le suivant: byte
8 bits, short
16 bits, int
32 bits, long
64 bits. Tous ces types sont signés , il n'y a pas de versions non signées. Cependant, les manipulations de bits traitent les nombres comme s'ils n'étaient pas signés (c'est-à-dire en gérant correctement tous les bits).
Le type de données de caractère char
est large de 16 bits, non signé et contient des caractères utilisant le codage UTF-16 (cependant, il est possible d'attribuer un char
entier arbitraire de 16 bits non signé qui représente un point de code de caractère non valide)
width minimum maximum
SIGNED
byte: 8 bit -128 +127
short: 16 bit -32 768 +32 767
int: 32 bit -2 147 483 648 +2 147 483 647
long: 64 bit -9 223 372 036 854 775 808 +9 223 372 036 854 775 807
UNSIGNED
char 16 bit 0 +65 535