In C , il linguaggio stesso non determina la rappresentazione di alcuni tipi di dati. Può variare da macchina a macchina, sui sistemi embedded int
può essere larga 16 bit, sebbene di solito sia 32 bit.
L'unico requisito è che short int
<= int
<= long int
per dimensione. Inoltre, esiste una raccomandazione che int
dovrebbe rappresentare la capacità nativa del processore .
Tutti i tipi sono firmati. Il unsigned
modificatore consente di utilizzare il bit più alto come parte del valore (altrimenti è riservato al bit del segno).
Ecco una breve tabella dei possibili valori per i possibili tipi di dati:
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
In Java , la specifica del linguaggio Java determina la rappresentazione dei tipi di dati.
L'ordine è: byte
8 bit, short
16 bit, int
32 bit, long
64 bit. Tutti questi tipi sono firmati , non ci sono versioni non firmate. Tuttavia, le manipolazioni dei bit trattano i numeri come se fossero senza segno (ovvero gestendo correttamente tutti i bit).
Il tipo di dati carattere char
è largo 16 bit, senza segno e contiene caratteri usando la codifica UTF-16 (tuttavia, è possibile assegnare un char
numero intero a 16 bit senza segno arbitrario che rappresenta un punto di codice carattere non valido)
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