Che cos’è il Codice Binario

Codice Binario

Che cos’è il Codice Binario

2

Il codice binario è un sistema di codifica posizionale, simile a quello decimale ma che utilizza la base 2 per la rappresentazione dell’informazione.

Il Bit (Binary Digit– codice binario) è l’unità elementare dell’informazione trattata da un elaboratore, e possiamo considerare quindi il Bit una variabile che può assumere solo due valori:

  • 0
  • 1

L’ importanza del codice binario nei sistemi informatici è grazie al contributo di George Boole, che per primo è riuscito a semplificare i  processi logici a delle espressioni formate da 0 ed 1.

Questo sistema di rappresentazione dell’informazione, ci permette di esprimere tramite questi due soli numeri qualsiasi cosa, seguendo delle convenzioni chiamate codifiche (che vedremo nel prossimo articolo).

Nei computer infatti, ogni cosa viene salvata come una sequenza di zero ed uno: era sicuramente più chiaro prima dell’avvento dell’interfaccia grafica ovvero quando l’unica cosa che era possibile usare era una CUI ( Character user interface conosciuta anche come CLI – interfaccia da linea di comando).

Pensate per esempio al vostro gioco per pc preferito, ai vostri film e alle vostre canzoni: tutte queste sono esempi di codifiche che dal lato della macchina non sono altro che una sequenza di zero ed uno.

tumblr_m4bs10vEIg1rujvlfo1_500Vediamo ora come rappresentare un numero decimale in binario, e come successivamente ritrasformarlo in decimale.

Rappresentazione binaria di un numero decimale

Ovvero: cambio di base

Da piccoli, ci insegnano a contare in modulo 10: contiamo 0, 1,2,3,4,5,6,7,8,9 e poi ricominciamo il conto, aggiungendo una decina.

Il conto in binario, è simile: essendo però in modulo 2, i numeri sono solo 0,1. Quindi invece che 2, avremo 10, invece che 3, avremo 11 e così via.

Ora, per numeri piccoli potremmo pensare di fare i conti a mano come ho appena fatto io, ma sarebbe abbastanza scomodo quando diventano più grandi.

Quello che dobbiamo fare quindi, è:

Dato il nostro numero in base 10, lo dividiamo per finchè non finisce il resto. Il numero binario sarà dato proprio dai resti presi dalla fine all’inizio.

Quindi:

Risultato Resto
5234 2
2617 0
1308 1
654 0
327 0
163 1
81 1
40 1
20 0
10 0
5 0
2 1
1 0
0 1

5234, in binario, equivale a 1010001110010.(nella tabella, il due in alto a destra è per impostare la divisione).

Possiamo immaginare la memoria del computer come una fila di scatole che possono contenere o zero o uno. Ogni scatola, rappresenta un bit.

Se con “cn” intendiamo una stringa binaria lunga n bit, l’ultimo bit a destra in posizione c0 viene chiamato LSB (Less Significant Bit – Bit meno significativo) mentre quello in posizione cn (ovvero il primo) viene chiamato MSB (Most Significant Bit – Bit più significativo).

Operazioni aritmetiche: addizioni e sottrazioni in binario

Le addizioni in binario sono identiche a quelle in decimale:

1+1 = 10
10+10 = 100
11 +10 = 101

E’ ovviamente più facile farle, se le impostiamo in colonna

0001 + 
0001 =
0010

Lo stesso vale per le sottrazioni.

1-1 = 0
10-10=0
11-10=1

Le moltiplicazioni:

1*0 = 0
1*1 = 1
0*0 =0

E le divisioni:

1/1=1
0/1=0

Conversione da binario a decimale

La conversione contraria, ovvero da un numero binario a decimale, è la seguente:

Dato un numero binario ad esempio 111, l’equivalente in decimale è dato dalla somma:

22+ 21 + 20 = 4+2+1 = 7

Effettivamente 111 in binario equivale a 7.

Attenzione però: questo vale solo per i bit che valgono uno!

Vediamo un’altro esempio per chiarire meglio le idee:

101= 22 + 0 + 20 = 5

La posizione del bit, contando da destra verso sinistra, indica a che potenza di due equivale. In questo caso:

  • il primo bit è in posizione 2 quindi equivale a 22 ovvero 4
  • Il secondo bit vale zero quindi non si conta (altrimenti sarebbe 21 ovvero 2)
  • Il terzo bit è in posizione zero quindi vale 20 ovvero 1

Vediamo un’altro esempio:

10101110: sono 8 bit. L’ equivalente in decimale è dato dalla somma di:

27 + 0 + 25 + 24 +  23 + 22 + 21 + 0 = 348

Sapendo il numero di bit, possiamo anche predire che range di numeri possiamo rappresentarci: il calcolo è semplice, dati n bit possiamo rappresentare al massimo 2n -1 numeri.

Nell’ ultimo esempio, usavamo 8 bit: il massimo numero che possiamo rappresentare con 8 bit è 28 -1 ovvero 256.

In informatica, quando parliamo di 8 bit ci riferiamo più semplicemente ad 1 byte.

Per essere precisi, dovremmo riferirci ad 8 bit col nome di Ottetto in quanto con byte ci si riferisce per definizione all’ unità minima trasferibile: esistono infatti (vecchi) computer che con 1 byte si riferiscono a 7 bit.

Per terminare le equivalenze, seguendo una definizione del SI internazionale non standard:

  bit byte Kilobyte Megabyte Gigabyte
bit 1 8 8,192 8,388,608 8,589,934,592
byte 8 1 1,024 1,048,576 1,073,741,824
Kibibyte 8,192 1,024 1 1,024 1,048,576
Mebibyte 8,388,608 1,048,576 1,024 1 1,024
Gibibyte 8,589,934,592 1,073,741,824 1,048,576 1,024 1
Tebibyte 8,796,093,022,208 1,099,511,627,776 1,073,741,824 1,048,576 1,024
Pebibyte 9,007,199,254,740,992 1,125,899,906,842,624 1,099,511,627,776 1,073,741,824 1,048,576
Exbibyte 9,223,372,036,854,775,808 1,152,921,504,606,846,976 1,125,899,906,842,624 1,099,511,627,776 1,073,741,824
Zebibyte 9,444,732,965,739,290,427,392 1,180,591,620,717,411,303,424 1,152,921,504,606,846,976 1,125,899,906,842,624 1,099,511,627,776

Kilobyte e Kibibyte

Il sistema internazionale (SI) ha stabilito che con il termine kilobyte, ci si deve riferire (come per le altre unità di misura) a 103 byte.

Per riferirsi invece a 210byte dovremmo utilizzare il termine più preciso kibibyte: guarda caso, i furbetti produttori di hard disk, indicano la dimensione dello stesso utilizzando la definizione precisa “GigaByte”. Il nostro computer invece, per indicare lo spazio disponibile, utilizza erroneamente il termine gigabyte ma intendendo gibibyte.

Si ringrazia Mattyw per la precisazione di questo paragrafo 🙂

Infine

Infine, una piccola precisazione di notazione: con kB ci si riferisce a KiloByte, con kb si riferisce a kilobit. La differenza stà nella “b” minuscola (bit) o maiuscola (byte).

Adesso che sai tutte queste cose ti chiedo: perchè nelle pubblicità delle promozioni per internet dicono che “navighi a 20 MEGA”?

Mega cosa? Ma bit ovviamente! Che come ormai avrai capito, è molto più piccolo di un byte (unità di misura che ormai conosciamo).

Quindi, se navighiamo a 20 megabit un file da 20 megabyte non lo scaricheremo in 20 secondi 🙂

About the Author

Federico PonziStudente, Webmaster ed appassionato di tutto ciò che è informatico con una spruzzata di scienza.View all posts by Federico Ponzi

  1. Mattyw
    Mattyw09-16-2013

    Io veramente mi ricordavo che i kilobyte (prefisso SI) equivalessero a 1000 byte (idem per gli altri prefissi, che vanno sempre in base10 secondo il SI), mentre per le forme a base2 si utilizzassero i kibibyte (2^10 byte = 1024 byte)

  2. Federico Ponzi
    Federico Ponzi09-17-2013

    Ottimo ho corretto l’articolo! Ti ringrazio molto per la segnalazione Mattyw 🙂
    Federico

Leave a Reply