Condividi questa pagina su:

Bit, Byte, KiloByte, MegaByte, GigaByte, TeraByte: AIUTO!

Bit e Byte spiegati in modo comprensibile

Bits

Cos'è un bit? Cos'è un byte? Per alcune persone l'alfabeto dei computer, il Sistema Binario, è un mistero. Spieghiamolo in modo semplice procedendo per piccoli passi, dai concetti elementari di sistema di numerazione binario, ai byte e i loro moltiplicatori, fino alla conversione tra i sistemi di numerazione adottati in informatica.

 

In questo articolo:

L'uomo e il sistema in base dieci

DitaPerché il nostro sistema di numerazione è in base dieci? Tra le tante risposte possibili la più attendibile è anche la più semplice: perché abbiamo dieci dita!

È quindi probabile che abbiamo imparato a contare prima fino a dieci e poi, col sistema posizionale, abbiamo imparato ad assegnare un moltiplicatore a ogni cifra che compone il numero.

Per esempio, se prendiamo il numero 4587, possiamo scomporlo in:

4000 + 500 + 80 + 7

Cioè: 4×1000 + 5×100 + 8×10 + 7×1

O ancora: 4×103 + 5×102 + 8×101 + 7×100

Da quest'ultima espressione si capisce che a ogni posizione assunta dalla cifra corrisponde una potenza di 10 che la moltiplica. Infatti:

100 = 1: Posizione 1 (meno significativa)
101 = 10: Posizione 2
102 = 100: Posizione 3
103 = 1000: Posizione 4 (più significativa)

Vedendola sotto forma di metafora, è come se aggiungessimo dei "pesi" su una bilancia, in questo modo:

4 pesi da 1000 grammi ciascuno
5 pesi da 100 grammi ciascuno
8 pesi da 10 grammi ciascuno
7 pesi da 1 grammo ciascuno

Focalizza bene questo concetto dei "pesi" perché ti sarà utile più avanti nella lettura di questo articolo!

Ann.

388,00 €
Il prezzo, se indicato, è sincronizzato ogni 6 ore. Verificarlo SEMPRE su Amazon PRIMA dell'acquisto!

Ann.

Maggiori informazioni sui canali delle offerte Amazon...

L'uomo e gli altri sistemi

OrologioPer quanto possa sembrare strano, la numerazione in base dieci non è l'unica che utilizziamo quotidianamente, solo che lo facciamo fin da piccoli e quindi non ci facciamo più caso.

Per esempio abbiamo imparato a utilizzare un sistema in base 24 (o 12) per misurare le ore di una giornata, utilizziamo la base 4 per misurare un anno con le stagioni e in base 12 per misurarlo con i mesi, contiamo fino a 60 per minuti primi e secondi, fino a 360 per gli angoli, in base 2, 4, 8, 16, ecc... per la musica e tanti altri sono gli esempi possibili.

Lo facciamo da sempre e non ci siamo mai trovati in grosse difficoltà, salvo casi particolari.

Come ragionano i computer

ON-OFFMentre il nostro sistema di numerazione si basa su 10 simboli, da 0 a 9, l'informazione elementare memorizzabile da un computer è "VERO" o "FALSO", "1" o "0", "ACCESO" o "SPENTO", cioè si basa su due soli valori possibili ed ecco perché si chiama sistema binario. Questa informazione elementare prende il nome di bit (Binary digIT).

Anche il sistema binario, come il nostro decimale, è un sistema posizionale. Solo che il moltiplicatore tra una posizione e la successiva non è 10 ma 2.

Quindi, se nel nostro sistema spostando una cifra di una posizione verso sinistra (da meno significativa a più significativa) il suo "peso" viene moltiplicato per 10, nel sistema binario viene moltiplicata per 2.

Possiamo intuire che il numero binario 0110 è il doppio del numero binario 0011, ma verifichiamolo tramite un'analogia col precedente esempio decimale:

0011 = 0×23 + 0×22 + 1×21 + 1×20

Cioè 0011 = 0×8 + 0×4 + 1×2 + 1×1 = 2 + 1 che corrisponde a 3 in decimale.

Mentre 0110 = 0×23 + 1×22 + 1×21 + 0×20

Cioè 0110 = 0×8 + 1×4 + 1×2 + 0×1 = 4 + 2 che corrisponde a 6 in decimale.

Come puoi vedere il concetto è identico a quello che utilizziamo nella comune numerazione a base 10 solo che, cambiando la base in 2, a ogni spostamento di cifre si moltiplica o divide per 2 anziché per 10.

Il Byte

Nel sistema decimale siamo abituati, per comodità di lettura, a separare gruppi di tre cifre con una virgola o con un apice. Per esempio, dovendo indicare il numero 1768425, per chiarezza lo scriveremmo 1,768,425 oppure 1'768'425.

Analogamente nel sistema binario si è deciso di unire le cifre a gruppi di otto. Ogni gruppo di 8 bit prende il nome di byte.

È consuetudine scrivere i numeri binari sempre a 8 cifre. Di conseguenza i numeri utilizzati nell'esempio precedente sarebbero scritti come 00000011 (decimale 3) e 00000110 (decimale 6).

Un byte può assumere 256 valori (28), da 0 a 255.

Esiste anche il raggruppamento a 4 bit che prende il nome di nibble (mezzo byte), utilizzato soprattutto nella conversione binario-esadecimale che affronteremo più avanti in questo articolo.

I moltiplicatori

Come per tutte le grandezze comunemente utilizzate, anche per i byte si utilizzano i moltiplicatori che agevolano la scrittura di numeri grandi, con una piccola differenza: mentre nel caso dei Grammi, dei Metri, degli Hertz, dei Volt e di tante altre grandezze fisiche i prefissi K, M, G, ecc... moltiplicano per un fattore 1000 (che è una potenza di 10), nel caso dei byte il fattore di moltiplicazione è 1024 (che è una potenza di 2).

Quindi, fino al 1998, in informatica si utilizzavano i seguenti moltiplicatori:

1 KByte (KiloByte o KB) = 1024 Byte
1 MByte (MegaByte o MB) = 1024 KByte
1 GByte (GigaByte o GB) = 1024 MByte
1 TByte (TeraByte o TB) = 1024 GByte
Ecc...

Nota: questo è il motivo per cui quando compri un supporto informatico e ne visualizzi la capacità in TeraByte forse ti viene da pensare che ti abbiano truffato... e in effetti è vero!
Infatti i "furbi" produttori di supporti dichiarano un hard disk da 2 TB utilizzando il fattore 1000 del sistema decimale (cioè circa 2.000.000.000.000 = duemila miliardi di byte) ma quando lo installi sul tuo computer che, più correttamente, fa i conti nel sistema adottato nell'informatica, ottieni uno spazio libero di 1,82 TB, cioè 2.000.000.000.000 ∕ 1024 ∕ 1024 ∕ 1024 ∕ 1024 = 1,818989403545856.

A partire dal 1998, sono stati creati dei moltiplicatori appositi per i Byte (in base 2 anziché base 10) che sono contraddistinti dal suffisso bi (binary):

1 KibiByte (KiB) = 1024 Byte
1 MebiByte (MiB) = 1024 KibiByte
1 GibiByte (GiB) = 1024 MebiByte
1 TebiByte (TiB) = 1024 GibiByte
Ecc...

Grazie a questi nuovi moltiplicatori gli informatici dispongono delle loro unità di misura della memoria mentre i costruttori di memorie di massa sono stati legittimati a utilizzare i moltiplicatori in base 10 anziché quelli in base 2.

Però i nuovi moltiplicatori, nonostante siano passati più di 20 anni dalla loro introduzione, non sono entrati nell'uso comune, quindi rimane un alone di ambiguità nel quale gli informatici continuano a considerare i moltiplicatori in base 2 (× 1024) mentre i costruttori di memorie di massa, legittimamente a partire dal 1998, li considerano in base 10 (× 1000).

Conversione da binario a decimale

Esistono molti metodi per convertire un numero binario nel suo equivalente decimale ma quello più intuitivo è il metodo dei "pesi" di cui ho parlato in precedenza.

Prendiamo il numero binario 11010111 e assegniamo a ogni posizione del numero un "peso":

Numero binario 1 1 0 1 0 1 1 1
Posizione 8 7 6 5 4 3 2 1
Potenza di 2 27 26 25 24 23 22 21 20
Peso decimale della posizione 128 64 32 16 8 4 2 1
Peso decimale della cifra binaria 128 64 0 16 0 4 2 1

A questo punto sarà sufficiente sommare i "pesi" nell'ultima riga, corrispondenti a ogni "1" contenuto nel numero binario da convertire e otteniamo:

Numero decimale = 128 + 64 + 16 + 4 + 2 + 1

Una semplice somma ci ritorna il risultato 215 che è l'equivalente decimale del numero binario 10010111.

Può sembrare complicato ma ti assicuro che con un po' di pratica ti sarà facilissimo convertire numeri binari in decimali utilizzando questo metodo, anche senza calcolatrice.

Il sistema esadecimale

Come puoi facilmente comprendere, mentre un computer non ha problemi a "ricordare" una sfilza di 0 e 1, per l'essere umano è molto meno semplice.

Ecco perché è stato necessario inventare un altro sistema di numerazione, strettamente legato a quello binario: il sistema esadecimale.

Il sistema esadecimale è un sistema in base 16. Cioè, mentre il sistema decimale adotta 10 simboli e quello binario ne adotta soltanto 2, il sistema esadecimale utilizza 16 simboli che sono 0123456789abcdef, dove le lettere da "a" a "f" sostituiscono i valori da 10 a 15. Quindi:

1 = 1
2 = 2
...
8 = 8
9 = 9
a = 10
b = 11
c = 12
d = 13
e = 14
f = 15

L'equivalente esadecimale del numero binario dell'esempio precedente 11010111 è d7 ma prima di spiegarti come si ottiene questo valore voglio farti osservare quanto la notazione esadecimale semplifichi all'essere umano la memorizzazione dei numeri binari, pur mantenendo una stretta correlazione tra loro, come vedremo ora.

La conversione da binario a esadecimale è molto semplice, molto più di quanto si potrebbe immaginare e si ottiene dividendo il byte in due gruppi da 4 bit (nibble). Il nostro numero binario diventa quindi 1101 0111.

Con 4 bit (un nibble) si può contare da 0 a 15 (cominci a intuire vero? ) che, guarda caso, è lo stesso intervallo di valori che può assumere una cifra esadecimale.

Prendiamo i primi 4 bit del nostro numero binario 1101 e col metodo dei pesi descritto poco fa calcoliamo il suo equivalente decimale che è 8 + 4 + 0 + 1 = 13.

Dalla tabella delle lettere esadecimali vediamo che il numero 13 corrisponde a una "d".

Ora facciamo la stessa cosa con il secondo gruppo di bit 0111: 0 + 4 + 2 + 1 = 7.

Nibble binario 1101 0111
Decimale 13 7
Esadecimale d 7

Ecco che abbiamo convertito il numero binario 11010111 nel suo equivalente esadecimale d7, utilizzando soltanto due cifre invece di otto per esprimere lo stesso valore. Entrambi corrispondono al decimale 215.

Semplice no?

Fabio Donna

Iscriviti alla Newsletter

...per non perdere le novità, le offerte e nuovi articoli del Blog di altraSoluzione:

Ann.
Ann.
Ann.
Ann.

Ann.

Ann.
Ann.