En C , el lenguaje en sí no determina la representación de ciertos tipos de datos. Puede variar de máquina a máquina, en sistemas integrados intpuede tener 16 bits de ancho, aunque generalmente es de 32 bits.
El único requisito es que short int<= int<= long intpor tamaño. Además, hay una recomendación que intdebe representar la capacidad nativa del procesador .
Todos los tipos están firmados. El unsignedmodificador le permite utilizar el bit más alto como parte del valor (de lo contrario, está reservado para el bit de signo).
Aquí hay una breve tabla de los posibles valores para los posibles tipos de datos:
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 Especificación del lenguaje Java determina la representación de los tipos de datos.
El orden es: byte8 bits, short16 bits, int32 bits, long64 bits. Todos estos tipos están firmados , no hay versiones sin firmar. Sin embargo, las manipulaciones de bits tratan los números como si no estuvieran firmados (es decir, manejando todos los bits correctamente).
El tipo de datos de caracteres chares de 16 bits de ancho, sin signo y contiene caracteres con codificación UTF-16 (sin embargo, es posible asignar un charentero arbitrario de 16 bits sin signo que represente un punto de código de caracteres no válido)
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