PROGRAMMIAMO
File - Numero di cifre binarie
I numeri binari sono molto lunghi

Usando solo due cifre, i numeri in binario sono "più lunghi" (sono formati da più cifre) rispetto ai corrispondenti numeri in base 10. Ciò risulta evidente anche dall'esempio precedente: il numero quarantacinque in decimale richiede solo due cifre (4 e 5), mentre in binario viene rappresentato con 6 bit.

(45)10 = (101101)2

Si osservi la notazione usata per indicare la base in cui è stato scritto il numero. Tale indicazione è indispensabile quando si confrontano numeri in basi diverse poiché altrimenti ci si potrebbe confondere (per esempio 100 può rappresentare sia il numero quattro in binario che il numero cento in base dieci!).

Quanti bit ci vogliono per rappresentare un dato numero?

Se abbiamo 3 cifre decimali, qual è il massimo numero che possiamo scrivere? La risposta è ovviamente 999. In modo simile con 4 cifre decimali possiamo scrivere al massimo 9999 e così via in tutti i casi. Possiamo generalizzare la nostra osservazioni dicendo che il numero più grande che si può scrivere con n cifre decimali è 10n -1.

Con i numeri binari le cose funzionano allo stesso modo, solo che naturalmente la base è 2. In generale con n bit si possono rappresentare numeri fino a un valore massimo di 2n-1. Per esempio con 3 bit si possono scrivere numeri fino a un massimo di 7 (in binario 111). Infatti abbiamo che 23-1 = 8 - 1 = 7. In modo simile con 10 bit il massimo numero rappresentabile è 210 - 1 = 1023.

Si faccia attenzione al fatto che il valore massimo è 7, ma i numeri che è possibile scrivere usando solo 3 bit sono in realtà 8 (cioè 23). Infatti fra questi bisogna contare anche lo zero:

(000)2 = (0)10     (001)2 = (1)10     (020)2 = (2)10     (011)2 = (3)10      (100)2 = (4)10

(101)2 = (5)10     (110)2 = (6)10     (111)2 = (7)10

Con un byte (8 bit) per esempio si possono scrivere numeri fino a un valore massimo di 28-1 = 256 - 1 = 255. Con un byte è dunque possibile scrivere 256 combinazioni diverse di valori (contando anche lo zero).

Qualche esempio pratico

Facciamo qualche semplice esempio per chiarire i concetti precedenti. Supponiamo di avere 3 interruttori. Quante lampadine è possibile accendere? Probabilmente la prima risposta spontanea è 3. In realtà con 3 interruttori è possibile accendere 7 lampadine, a condizione di voler accendere solo una lampadina alla vota. Per fare questo bisogna assegnare a ogni lampadina una delle combinazioni possibili dei valori degli interruttori. La tabella seguente dovrebbe chiarire meglio il concetto. Indichiamo con A, B e C i tre interruttori e con OFF e ON rispettivamente lo stato di interruttore aperto (non passa corrente) e chiuso (passa corrente). Numeriamo le lampadine con i numeri progressivi da 1 a 7:

Interruttori Lampadina accesa
A B C
OFF OFF OFF nessuna
OFF OFF ON 1
OFF ON OFF 2
OFF ON ON 3
ON OFF OFF 4
ON OFF ON 5
ON ON OFF 6
ON ON ON 7

Il lettore si sarà certamente accorto che OFF e ON sono due nomi possibili dei due stati binari 0 e 1. Sostituendo 0 a OFF e e 1 a ON nella tabella precedente, si ottiene la sequenza dei numeri da 0 a 7. Lo zero (OFF OFF OFF) è usato per spegnere tutte le lampadine; gli altri numeri corrispondono all'accensione di una delle 7 lampadine.

Lampadine e interruttori

Consideriamo ora un altro esempio. Supponiamo di dover assegnare un numero identificativo binario a ciascun corridore di una gara di corsa e di avere a disposizione 4 bit per scrivere questo numero. Quanti corridori al massimo potremo numerare?

Codici binari e numerazione corridori

In questo caso la risposta è 16 (cioè 24) perché possiamo usare tutti i codici da 0000 a 1111 e assegnare ciascuno di essi a un corridore.

Un caso simili si presenta quando si vuole usare un codice per rappresentare i caratteri (lettere, cifre, segni di interpunzione, simboli vari) dell'alfabeto. Per esempio con 1 B si possono rappresentare al massimo 28 = 256 caratteri diversi, assegnando ogni codice (da 00000000 a 11111111) a un carattere.

E le altre basi?

Abbiamo visto che, avendo a disposizione n bit, si possono rappresentare tutti i valori da 0 fino a 2n-1 (per un totale di 2n numeri diversi).

La regola vale anche per le basi diverse da 2. Vale naturalmente in base 10, come si è già detto (es. con 4 cifre si possono scrivere 10.000 numeri da 0 a 9999). Vediamo adesso qualche esempio usando basi più strane.

Supponiamo di lanciare due dadi da gioco e di voler sapere quanti sono i risultati possibili del lancio. Poiché ogni dado può produrre i valori da 1 a 6 i risultati sono:

11 (uno sul primo e uno sul secondo dado), 12 (uno sul primo e due sul secondo), 13, etc.

Invece di contarli tutti a mano, possiamo ragionare sul fatto che si tratta di un sistema in base 6 (usa 6 simboli, da 1 a 6) e dunque il numero di possibili combinazioni è 62 = 36.

Un altro esempio interessante ci viene dalla biologia. Il DNA (la molecola che codifica le informazioni genetiche) è formata da una lunga successione di basi azotate: Adenina, Timina, Guanina e Citosina (A,T,G e C). Ogni tripletta di basi (es. ACC o AGT) codifica un aminoacido (elemento fondamentale per la formazione delle proteine). Quanti aminoacidi in totale è possibile codificare con questo sistema?

Poiché abbiamo 4 basi, si tratta di un sistema in base 4 (quattro simboli: A,T,G e C). Prendere una tripletta equivale a scrivere numeri a 3 cifre (3 simboli) nella base 4. Dunque il numero di combinazioni totali che si possono scrivere è 43 = 64. Ovvero, con questo sistema di codifica, è possibile rappresentare fino a un massimo di 64 aminoacidi diversi (il numero di aminoacidi esistenti è molto inferiore - circa una ventina; alcune triplette servono per codificare l'inizio e la fine di una sequenza, altre non sono usate).

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it