Cos'è un byte?
Un byte è un'unità di dati digitali formata da 8 bit, che insieme possono rappresentare 256 valori diversi, da 0 a 255. Nella maggior parte dei computer è la più piccola unità di memoria con un proprio indirizzo, e le dimensioni dei file si contano in byte.
Aggiornato il 24 settembre 2026
- 48H
- 69i
- 20␣
- F0 9F 98 80😀
4 caratteri, 7 byte
La lettera A, salvata sul tuo computer, è il numero 65, e il numero 65 è memorizzato come otto bit: 01000001. Quel gruppo di otto è un byte. Gli indirizzi di memoria contano byte, le dimensioni dei file contano byte, e quasi ogni tipo di dato di un linguaggio di programmazione è lungo un numero intero di byte.
Perché un byte vale 8 bit
La parola "byte" fu coniata da Werner Buchholz nel 1956, mentre lavorava al computer Stretch di IBM. La scrisse con la y perché non venisse letta per sbaglio come "bit". I primi computer usavano gruppi di dimensioni diverse, spesso 6 bit, sufficienti per lettere maiuscole e cifre ma non per le minuscole.
Il System/360 di IBM, uscito nel 1964, usava byte da 8 bit, e il resto del settore lo seguì. Otto bit danno 256 valori, che bastano per lettere maiuscole e minuscole, cifre, punteggiatura e codici di controllo. Otto è anche una potenza di due, quindi un byte si divide esattamente in due metà da 4 bit, ognuna scritta come una cifra esadecimale. Gli standard di rete dicono ancora "ottetto" quando devono precisare che intendono esattamente 8 bit.
Cosa può contenere un byte
Un byte ha 256 combinazioni possibili, da 00000000 a 11111111. I programmi le leggono in alcuni modi standard:
- come numero senza segno da 0 a 255;
- come numero con segno da -128 a 127;
- come un carattere, per esempio
A(65) o!(33); - come due cifre esadecimali, da
00aFF.
Il tipo bytes di Python è una sequenza di questi valori, e rifiuta qualsiasi cosa fuori dall'intervallo da 0 a 255:
b'Hi!'
[72, 105, 33]
01001000 48
ValueError: bytes must be in range(0, 256)
Non tutti i caratteri stanno in un byte. UTF-8, la codifica usata dalla maggior parte del web, memorizza i 128 caratteri ASCII in 1 byte ciascuno e tutto il resto in 2 a 4 byte:
A 1 bytes: [65] 41
é 2 bytes: [195, 169] c3a9
€ 3 bytes: [226, 130, 172] e282ac
😀 4 bytes: [240, 159, 152, 128] f09f9880
Ecco perché la lunghezza di una stringa in caratteri e la sua dimensione in byte possono essere diverse.
Differenza tra bit e byte
Un bit è un singolo 0 o 1. Un byte è 8 bit. Le due unità si confondono facilmente perché i loro simboli differiscono solo per la maiuscola:
| Bit | Byte | |
|---|---|---|
| Cos'è | Una cifra binaria | 8 bit |
| Valori possibili | 2 (0 o 1) | 256 (da 0 a 255) |
| Simbolo | b (minuscola) | B (maiuscola) |
| Di solito misura | Velocità di rete: Mbps, Gbps | Spazio e dimensione dei file: KB, MB, GB |
| Esempio | Una connessione da 100 Mbps | Una foto da 5 MB |
Per passare dai bit ai byte, dividi per 8. Una connessione da 100 Mbps trasferisce al massimo 12,5 MB al secondo, quindi una foto da 5 MB richiede almeno 0,4 secondi per essere scaricata.
Kilobyte, megabyte e gigabyte
Le unità più grandi esistono in due sistemi, e la differenza tra i due è il motivo per cui un disco nuovo sembra più piccolo in Windows che sull'etichetta.
| Decimale (SI) | Byte | Binario (IEC) | Byte |
|---|---|---|---|
| kilobyte (kB) | 1.000 | kibibyte (KiB) | 1.024 |
| megabyte (MB) | 1.000.000 | mebibyte (MiB) | 1.048.576 |
| gigabyte (GB) | 1.000.000.000 | gibibyte (GiB) | 1.073.741.824 |
| terabyte (TB) | 1.000.000.000.000 | tebibyte (TiB) | 1.099.511.627.776 |
I produttori di dischi, le velocità di rete e macOS (dalla versione 10.6 del 2009) usano le unità decimali. Le dimensioni della RAM e Windows usano le unità binarie, ma Windows le chiama KB, MB e GB. La IEC ha introdotto i nomi kibibyte, mebibyte e gibibyte nel 1998 per mettere fine alla confusione, anche se molti programmi ancora non li usano.
1.0 TB (decimal, used on the box)
931.3 GiB (binary, what Windows calls GB)
12.5 MB per second
Non manca spazio. Il disco contiene i mille miliardi di byte promessi sulla confezione; Windows divide per 1.024 tre volte invece che per 1.000.
I byte nel codice
Ogni valore in memoria occupa un numero intero di byte. In C, sizeof riporta quel numero. Un char è esattamente 1 byte per definizione, e sugli attuali sistemi Linux, macOS e Windows a 64 bit uno short è 2 byte, un int 4 e un double 8. Un array di 1.000 valori int occupa quindi 4.000 byte.
printf("%zu\n", sizeof(int)); /* prints 4 */
Il tipo byte di Java ha sempre il segno, da -128 a 127, quindi un valore come 200 non ci sta:
byte b = (byte) 200; // b is -56: the same 8 bits, read as signed
I dati grezzi come immagini, file compressi e pacchetti di rete si gestiscono come array di byte: bytes e bytearray in Python, byte[] in Java, Uint8Array in JavaScript. Aprire un file in Python con la modalità "rb" ti dà i suoi byte invece del testo.
Anche gli hash e i checksum si misurano in byte. Un digest SHA-256 è di 32 byte, ed è per questo che si stampa come 64 caratteri esadecimali, e un checksum CRC32 è di 4 byte. Il generatore di hash li mostra entrambi per qualsiasi testo.
Cosa leggere dopo
Per l'unità sotto il byte, leggi cos'è un bit, e per come si usano i byte per scoprire i file danneggiati, cos'è un checksum. Il convertitore di basi numeriche converte qualsiasi byte tra decimale, binario ed esadecimale, e la guida ai tipi di dato in C elenca la dimensione in byte di ogni tipo C.
Domande frequenti
Come si chiamano 8 bit 11111111?
11111111 è un byte con tutti i bit a 1. Letto come numero senza segno vale 255, il valore più grande che un byte può contenere, scritto FF in esadecimale. Letto come byte con segno in complemento a due, gli stessi bit significano -1.Perché 8 bit corrispondono a 1 byte?
Perché 4 bit si chiamano nibble?
1 byte sono 4 bit?
Cos'è più grande, un byte o un GB?
Com'è fatto un byte?
01000001. Quella sequenza è il numero 65, che è anche il codice della lettera A in ASCII. Chi programma di solito scrive un byte come due cifre esadecimali, quindi 01000001 diventa 41.