Perché un disco fisso da 10 terabyte offre solo 9.09 TB di spazio? Perché una chiavetta da 128 gigabyte consente di archiviare solo 119 GB di dati? Perché l'ADSL da 20 mega scarica a 2.5 megabyte per secondo persino nelle condizioni migliori? Tutto questo nasce dalla confusione fra le unità di misura delle informazioni digitali, bit e byte, e dal modo in cui vengono interpretati in multipli (kilobyte, megabyte, gigabyte ecc.). Vediamo dunque di fare il punto e chiarire ogni dubbio una volta per tutte

[guida] Bit byte, spiegazione facile: differenza megabit, megabyte, mebibyte, terabyte, tebibyte altri multipli - differenza bit byte multipli

Saltiamo alle conclusioni

Nel resto dell'articolo parleremo in dettaglio di bit, byte e relativi multipli. Se però già conosci tutta la teoria e cerchi una spiegazione stringata alla risposta "perché il mio disco ha meno spazio di quanto promesso?" eccoti servito.

La confusione è generata dal mondo di intendere i multipli:

  1. I produttori di dischi, chiavette USB, memorie SD e quant'altro pubblicizzano i loro prodotti intendendo i prefissi "mega", "giga" e "tera" in modo formalmente corretto (cioè in base 10, dove "kilo" sta per "1000" e via crescendo)
  2. Nel farlo, dimenticano che il mondo dell'informatica lavora in base 2 e intende (erroneamente) "kilo" come "1024", e via crescendo
  3. Il risultato è che lo spazio materialmente a disposizione dell'utente è inferiore a quanto promesso. Il problema è particolarmente evidente mano a mano che aumenta la capacità del dispositivo

Per quanto riguarda il collegamento ad Internet e la domanda "perché l'ADSL da 20 mega scarica solo a 2.5 megabyte per secondo?" dobbiamo invece ricordare che, in questo ambito, il suffisso "mega" sottintende "megabit" e non "megabyte". Un bit equivale a 8 byte, quindi è sempre necessario dividere per 8 per ottenere l'equivalenza: 20 mega / 8 bit = 2.5 megabyte, proprio come succede.

L'unità di misura delle informazioni digitali

Così come il metro viene utilizzato per misurare le distanze e il grammo permette di stabilire il peso di un corpo, allo stesso modo anche il modo dell'informatica ha una propria unità di misura, impiegata nello specifico per misurare la quantità di informazioni: si chiama bit, ed è il fulcro di questa trattazione.

Proprio come il metro prevede vari multipli (fra cui il più usato è sicuramente è il kilometro (sì, va scritto con la "K" iniziale)), anche il bit dispone di multipli che consentono di esprimere in forma più compatta i valori molto elevati.

Ma le analogie non finiscono qui: proprio come esiste il "kilometro al secondo" per trattare le velocità, il mondo dei computer ha avuto bisogno di realizzare unità di misura composte: i bit al secondo.

Che cosa è il "bit"

Se per il metro esistono i sottomultipli, fra cui il centimetro, nel modo dell'informatica si è scelto di "iniziare dal basso". Il bit, compressione BInary digiT, è dunque definito come la più piccola quantità di informazione digitale.

"Piccola... quanto?" Per rispondere, ricordiamo che i processori di informazioni digitali (CPU) elaborano solamente lunghe serie di 0 e 1 che, raggruppati in sequenze di varia lunghezza, permettono di codificare informazioni più complesse. Ecco quindi che il bit può assumere solamente due valori: zero oppure uno, ovvero la quantità minima di informazione gestibile

[guida] Bit byte, spiegazione facile: differenza megabit, megabyte, mebibyte, terabyte, tebibyte altri multipli

Facciamo qualche rapido esempio:

  • la sequenza 10 occupa 2 bit (uno per ogni cifra)
  • la sequenza 11 occupa 2 bit
  • la sequenza 1001 occupa 4 bit

Facile, no?

Gestire le lettere con i numeri

Ma come può un elaboratore dati che gestisce solamente 0 ed 1 trattare le lettere del'alfabeto e i simboli vari? La risposta è semplice: si adotta una codifica, ovvero si stabilisce per convenzione che una serie di 0 e 1, organizzati in un determinato modo, rappresentano un determinato simbolo:

  • la sequenza 01000001 rappresenta la lettera A
  • la sequenza 01000010 rappresenta la lettera B
  • ...
  • la sequenza 01011001 rappresenta la lettera Y
  • la sequenza 01011010 rappresenta la lettera Z

[la tabella completa è qui]

Quanto occupa questa codifica in termini di spazio? Come potete vedere a colpo d'occhio, ogni lettera dell'alfabeto può essere espressa esattamente con 8 bit.

8 bit = 1 byte

Nella quotidianità utilizziamo talmente di frequente le lettere da rendere comoda l'introduzione di una seconda unità di misura, pari appunto a 8 bit. Ecco quindi nascere il byte, cioè lo spazio occupato da un carattere dell'alfabeto

[guida] Bit byte, spiegazione facile: differenza megabit, megabyte, mebibyte, terabyte, tebibyte altri multipli - rappresentazione byte 8 bit

Facciamo un esperimento pratico per fissare il concetto:

  1. aprire Blocco note
  2. digitare la stringa Ciao!
  3. salvare il documento
  4. farvi click con il pulsante destro del mouse sopra e scegliere Proprietà per visualizzare quanto spazio occupa

La stringa Ciao! è composta esattamente da 5 caratteri (4 lettere + punto esclamativo) e ognuno occupa un byte. Di conseguenza, il file ha dimensione pari a 5 byte

[guida] Bit byte, spiegazione facile: differenza megabit, megabyte, mebibyte, terabyte, tebibyte altri multipli - zShotVM_1552150790

E se volessimo conoscere la stessa grandezza espressa in termini di bit? Ricordando che un byte è pari ad 8 bit, basta moltiplicare 5 byte x 8 bit = 40 bit. Potremmo indifferentemente dire quindi che il nostro documento ha una dimensione di 5 byte oppure 40 bit.

Bit oppure byte?

Come appena visto, esprimere una grandezza in bit oppure in byte è indifferente. Per una consuetudine non scritta si preferisce utilizzare:

  1. il byte per le misure di spazio: "il documento occupa XY byte" oppure "la chiavetta USB ha una capienza di YX byte" o "il PC ha XY byte di RAM"
  2. il bit per le misure di velocità: "questo collegamento ad Internet permette di scaricare a XY bit al secondo"

Si tratta però solamente di consuetudini. Possiamo sempre effettuare la conversione e indicare lo spazio occupato in termini di bit o una velocità come byte-al-secondo e risultare comunque corretti.

Arrivano i multipli

I file che produciamo nella quotidianità hanno dimensioni ragguardevoli. Una foto digitale, ad esempio, deve veicolare le informazioni su ogni punto dell'immagine per consentire all'elaboratore di ricrearla e mostrarla a schermo.

Di conseguenza, dovremmo parlare di file grandi "10 milioni di byte": sembrano tanti, ma è all'incirca il peso di una foto ad alta risoluzione! Non ci sarebbe nulla di sbagliato, ma risulterebbe estremamente scomodo

[guida] Bit byte, spiegazione facile: differenza megabit, megabyte, mebibyte, terabyte, tebibyte altri multipli

Ecco che intervengono i multipli: proprio come il metro ha il kilometro (pari a 1.000 metri) ed il grammo ha il kilogrammo (1.000 grammi), il bit ha il kilobit ed il byte il kilobyte. A salire, tutti gli altri sono nominati secondo le delibere del Sistema internazionale di unità di misura (SI):

  1. kilo: kilobit e kilobyte
  2. mega: megabit e megabyte
  3. giga: gigabit e gigabyte
  4. tera: terabit e terabyte
  5. peta: petabit e petabyte
  6. exa: exabit e exabyte
  7. zetta: zettabit e zettabyte
  8. yotta: yottabit e yottabyte

Lo yottabyte è l'unità di misura più grande oggi codificata, ma solo in pochissimi ambiti si trattano dati di dimensioni superiori alla decina di petabyte. D'altro canto, si stima che l'intera Internet pubblica sia quantificabile in meno di 5 zettabyte.

Le abbreviazioni: maiuscole e minuscole

Per differenziare le abbreviazioni di bit e byte, il Sistema Internazionale prevede la lettera "b" minuscola (b) per indicare il primo e quella maiuscola (B) per indicare il secondo. Scriveremo quindi 50 b per intendere "50 bit" e 70 B per "70 byte".

Le grandezze multiple sono invece espresse secondo le direttive SI per i prefissi: tutti con la lettera maiuscola, ad eccezione di "kilo" che vuole la lettera minuscola.

Combinando le due indicazioni, avremo quindi:

  • 12 kB per 12 kilobyte
  • 12 kb per 12 kilobit
  • 35 Mb per 35 megabit
  • 35 MB per 35 megabyte
  • 50 GB per 50 gigabyte
  • 10 TB per 10 terabyte

Notiamo ancora che la "k" deve sempre essere minuscola, in contrapposizione a "M", "G" e tutte le altre, che vogliono la lettera maiuscola. Nonostante queste precise indicazioni, si legge troppo spesso "Mb" o "mb" (invece di "MB") per indicare il megabyte e via dicendo. In pochissime occasioni, anche a livello universitario, ho visto scritto correttamente "kB" per indicare i kilobyte: si usa quasi sempre KB, quindi abituatevi a convivere con questa imprecisione.

D'altro canto, nemmeno Windows stesso si formalizza...

[guida] Bit byte, spiegazione facile: differenza megabit, megabyte, mebibyte, terabyte, tebibyte altri multipli

Il discorso è analogo per quanto riguarda la misura delle velocità di trasferimento: parleremo di 50 kb/s per indicare un collegamento in grado di scambiare dati a 50 kilobit per ogni secondo, 25 kB/s per dire 25 kilobyte al secondo, 2 Mb/s per 2 megabit al secondo e via dicendo.

I multipli e la confusione delle basi

A questo punto abbiamo tutti gli elementi per affrontare la domanda che genera tanta confusione: a quanti byte equivale un kilobyte? La maggior parte delle incomprensioni nasce proprio qui.

Benché il prefisso "kilo" indichi in modo inequivocabile "1000" (ad esempio, 1 kilometro = 1.000 metri), l'espressione è erroneamente utilizzata in ambito informatico ignorando che il calcolatore opera in base 2 (i numeri disponibili sono 0 e 1) e non in base 10 (cioè la base che tutti noi usiamo nella quotidianità, con i numeri da 0 a 9).

Di conseguenza, "kilobyte" è un nome sbagliato. Stando alla formalità del nome, dovrebbe indicare "1.000 byte" ma, in realtà, un kilobyte vale 1.024 byte. La differenza è dovuta, appunto, alla base 2 e all'errata assunzione che il prefisso kilo indichi 2^10 = 1.024 quando, in verità, indica il valore 10^3 = 1.000.

Ci si ritrova quindi con una confusione notevole in cui si può interpretare "kilobyte" in due modi diversi:

  1. 1 kilobyte = 1.024 byte - è una scrittura formalmente errata, ma è quella concretamente usata nell'informatica
  2. 1 kilobyte = 1.000 byte - sarebbe la nomenclatura corretta secondo il Sistema Internazionale, ma non è così che funziona il processore

[guida] Bit byte, spiegazione facile: differenza megabit, megabyte, mebibyte, terabyte, tebibyte altri multipli

Facciamo nuovamente un gioco per visualizzare come stanno le cose:

  1. aprire Blocco note
  2. digitare esattamente 1000 caratteri a piacimento (per farlo rapidamente: digitate 10 caratteri, poi copia-incollateli altre 9 volte, poi copia-incollate il tutto altre 9 volte)
  3. salvare il documento
  4. farvi click con il pulsante destro del mouse sopra e scegliere Proprietà

Il testo appena inserito è composto da 1000 caratteri, e ognuno occupa un byte. Di conseguenza, il file ha dimensione pari a 1000 byte. Per quanto appena detto, 1000 byte non equivalgono ad un 1 kilobyte: il sistema operativo ci mostra dunque correttamente la dicitura 1000 byte

[guida] Bit byte, spiegazione facile: differenza megabit, megabyte, mebibyte, terabyte, tebibyte altri multipli - zShotVM_1552163146

Ora aggiungiamo altri 24 caratteri a piacimento per arrivare a 1024 caratteri, cioè 1024 byte. Poiché, nella concezione informatica, 1024 byte = 1 kilobyte, il sistema operativo ci mostra correttamente le dimensioni riportando 1 KB

[guida] Bit byte, spiegazione facile: differenza megabit, megabyte, mebibyte, terabyte, tebibyte altri multipli - zShotVM_1552163225

Se volessimo proseguire con la verifica, potremmo dapprima digitare 1.000.000 di caratteri e scoprire che, ancora, non si parla di "megabyte". Per far apparire la dicitura 1 MB dobbiamo infatti inserire 1024 kilobyte, ovvero 1.048.576 byte (equivalenti ad altrettanti caratteri).

Ecco quindi verificato che, nonostante il prefisso kilo del Sistema Internazionale indichi inequivocabilmente 1.000 unità, il mondo dell'informatica considera 1 kilobyte equivalente a 1.024 byte, e da lì a crescere per gli altri multipli.

Si crea quindi uno scarto di 24 bit ogni mille (errore del 2.4%): sebbene la differenza sia trascurabile per valori piccoli, la propagazione su diversi ordini di grandezza causa incomprensioni notevoli nel computo della capacità dei dispositivi di memorizzazione da centinaia di milioni di byte:

  1. 1 gigabyte = 1.073.741.824 byte - è una nomenclatura errata, ma concretamente usata dall'elaboratore
  2. 1 gigabyte = 1.000.000.000 byte - sarebbe la nomenclatura corretta secondo il Sistema Internazionale, ma non nell'informatica

È facile notare che, mano a mano che si sale con i numeri, questo fraintendimento causa un'incomprensione reale se le parti non si intendono circa il significato dei termini:

  • 32 gigabyte dichiarati -> circa 29.8 gigabyte reali (differenza: 2.2 GB reali)
  • 1 terabyte dichiarati -> circa 931 gigabyte reali (differenza: 69 GB reali)
  • 10 terabyte dichiarati -> circa 9.09 terabyte reali (differenza: 901 GB reali)

[guida] Bit byte, spiegazione facile: differenza megabit, megabyte, mebibyte, terabyte, tebibyte altri multipli

La "truffa" del disco fisso

Alla luce di quanto appena visto capiamo facilmente perché, ad esempio, una scheda di memoria per fotocamere digitali che, da specifiche, dovrebbe garantire una capacità di archiviazione pari ad "80 gigabyte", possa archiviare al massimo 74,5 GB: nelle intenzioni del produttore, 80 gigabyte significa 80 miliardi di byte. Questa sarebbe un'indicazione corretta se il mondo informatico assumesse 1 gigabyte = 1.000.000.000 byte. Invece, come abbiamo visto poco sopra, per i computer 1 gigabyte = 1.073.741.824 byte.

Dividendo quindi il valore di 80.000.000.000 byte (80 gigabyte) per il numero 1.073.741.824 byte (cioè un gigabyte come utilizzato dal computer) si ottiene appunto 74,5 GB, cioè la reale capacità di memorizzazione della periferica.

La "truffa" del DVD-R

Discorso del tutto analogo per quanto riguarda i DVD scrivibili: la capacità promossa dai produttori è di 4.7 GB, inteso però ancora una volta come 4.700.000.000 byte

[guida] Bit byte, spiegazione facile: differenza megabit, megabyte, mebibyte, terabyte, tebibyte altri multipli

Per ottenere lo spazio realmente a disposizione dell'utente è necessario ancora una volta dividere questo valore per l'assunto informatico in cui un gigabyte vale 1.073.741.824 byte: in questo modo si ricaverà la reale capacità di un DVD, cioè all'incirca 4.37 GB.

I nuovi prefissi di misura

Conscia del problema, la comunità scientifica internazionale ha emesso una serie di nuovi prefissi con lo scopo di stabilire in modo univoco, formalmente corretto e non fraintendibile queste misure. Si tratta dei prefissi standard IEC, che vanno a costituire:

  1. kibi: kibibit (Kibit) e kibibyte (KiB) - entrambi i simboli vogliono la "K" maiuscola
  2. mebi: mebibit (Mibit) e mebibyte (MiB)
  3. gibi: gibibit (Gibit) e gibibyte (GiB)
  4. tera: tebibit (Tibit) e tebibyte (TiB)
  5. peta: pebibit (Pibit) e pebibyte (PiB)
  6. exa: exbibit (Eibit) e exbibyte (EiB)
  7. zetta: zebibit (Zibit) e zebibyte (ZiB)
  8. yotta: yobibit (Yibit) e yobibyte (YiB)

Questa nuova nomenclatura sbroglia completamente la matassa e previene ogni equivoco:

  1. I produttori di dispositivi d'archiviazione potrebbero indicare la capacità di un disco come, ad esempio, "10 tebibyte"
  2. Una volta collegato al PC, l'acquirente vedrebbe esattamente la capacità attesa: 10 TiB, ovvero "10 terabyte reali" nel senso in cui li intende il sistema operativo

Le "nuove" unità di misura IEC risalgono al 1998 ma, purtroppo, hanno avuto un'adozione prossima allo zero: gli utenti non le conoscono e i produttori non le usano.

Quanto (diavolo) vale un kilobyte?

Alla fine dei conti, quanto vale un kilobyte?

Affermare "vale 1.000 byte" è l'equivalenza più corretta sul piano strettamente formale, ma non è il modo in cui è stata applicata all'informatica, in cui si è deciso che "vale 1024 byte".

Poiché si lavora nel mondo reale e non in quello teorico, e fino a quando il termine kibibyte non avrà soppiantato del tutto il kilobyte anche nell'utilizzo quotidiano, è dunque necessario adattarsi alla realtà dei fatti, ed assumere che "1 kilobyte vale 1.024 byte"... ricordandosi di fare sempre una conversione prima di acquistare un disco di capacità elevata: comprare un modello da 16 terabyte per poi collegarlo al PC e scoprire che può contenere solo 14.5 TB di dati non dovrebbe sorprenderci.