Raffaele Ilardo


Il sistema binario e i calcolatori


© La parziale riproduzione dei contenuti di questa pagina è consentita a patto di citare l'indirizzo del sito e l'autore.


Osservazioni sul sistema decimale

Siamo cosi' abituati a contare col sistema decimale che, come giusto, non ci rendiamo più conto del significato della "posizione" che una cifra assume all'interno di un dato numero.
Consideriamo un numero a caso, per esempio 1234; sappiamo che l'ultima cifra, il quattro, indica le unità, la seconda, il tre, indica le decine, e cosi' via. Il valore di ogni singola cifra è pertanto determinato dalla sua posizione: partendo da destra e andando verso sinistra, ogni cifra assume un valore che è dieci volte quello precedente.
Osserviamo ancora che tutti i valori corrispondono a "potenze" di dieci: le unità corrispondono a 10 elevato a zero, le decine corrispondono a 10 elevato alla prima, le centinaia corrispondono a 10 elevato alla seconda, ecc.
Per indicare quante unità, quante decine, quante centinaia sono comprese nel numero, ci serviamo di numeri, ovvero di simboli, che sono, ancora una volta, proprio dieci e, come tutti sappiamo, sono lo zero, l'uno, il due. il tre. il quattro, il cinque, il sei, il sette, l'otto e il nove.

i numeri nel sistema decimale
Figura 1: per indicare i numeri nel sistema decimale usiamo 10 cifre; il valore di ogni cifra cambia a seconda della posizione e si moltiplica per dieci procedendo da destra verso sinistra

Con tale sistema, potendo disporre di dieci cifre diverse, possiamo indicare quantità anche grandi usando solo poche cifre: con tre cifre, per esempio, possiamo conteggiare fino 999 elementi singoli.

valori rappresentabili con due cifre binarie
figura 2

L'informazione elementare e il sistema binario

Con la nascita dei calcolatori è stato necessario adeguarsi alle possibilità dei circuiti elettronici. Per elaborare dei numeri è necessario averli disponibili tramite qualche sistema di memorizzazione; il circuito più semplice capace di memorizzare un'informazione elementare (figura 5) è in grado di assumere unicamente due stati "elettrici". Tali stati sono rappresentati dalla presenza o dall'assenza di tensione: la presenza di tensione viene assunta come valore "1", mentre la sua assenza viene assunta come valore "zero". E' bene sottolineare che non si tratta di valori numerici, ma solo di "stati logici", che vengono definiti come "alto" e "basso" o, in inglese, come H ("High") e L ("Low").
Notiamo a questo punto che, mentre nel sistema decimale abbiamo a disposizione ben dieci cifre o "simboli", in un sistema basato sui circuiti appena descritti possiamo disporre di solo due cifre o "simboli": lo zero e l'uno.
valori rappresentabili con tre cifre binarie
figura 3
Per rappresentare quantità più grandi proviamo allora ad utilizzare non più uno, ma due circuiti elementari; chiamiamo B1 il primo circuito e B2 il secondo, e scriviamo il loro stato (o "valore") in due caselle consecutive (figura 2).
Se non ci sono elementi da contare, B1 e B2 saranno entrambi a zero. In presenza di un solo elemento da contare, poniamo ad "1" il circuito B1; per contare invece due elementi, riportiamo a zero B1 e poniamo a uno B2. Per indicare tre elementi, portiamo a 1 sia B2 che B1.
Usando due circuiti elementari è quindi possibile rappresentare quattro valori: lo zero, l'uno, il due ed il tre. Osserviamo che, anche in questo caso, ricorre il concetto di "posizionale" in effetti, il circuito B1 rappresenta le unità, mentre il circuito B2 rappresenta un valore doppio, esattamente il valore "2", che corrisponde a 2 elevato alla prima.
In figura 3 vediamo come, servendosi di tre circuiti elementari, sia possibile rappresentare otto diversi valori. Possiamo subito notare che il circuito indicato come B3 sta a rappresentare il valore 4, ovvero 2 elevato alla seconda; nell'ultima riga, per esempio, troviamo che il valore rappresentato è il sette: esso corrisponde infatti alla somma:
reading boy
22 + 21 + 20 e cioè 4 + 2 + 1

Questo sistema numerico, caratteristicamente usato nei calcolatori, viene detto sistema binario. Così come il sistema decimale utilizza dieci cifre e viene detto "in base 10", il sistema binario è basato sui due soli simboli "0" e "1", ed è un sistema "in base 2".
Entrambi i sistemi numerici sono posizionali, ovvero le cifre assumono il loro valore in funzione della posizione che occupano nel numero: procedendo da destra verso sinistra, mentre nel sistema decimale ogni cifra aumenta il suo valore di dieci volte, nel sistema binario ogni cifra assume un valore doppio.
E' evidente che rappresentare una grandezza col sistema binario richiede di usare numeri formati da molte più cifre. Se nel sistema decimale possiamo esprimere con tre cifre un valore come, per esempio, 663, per rappresentare la stessa quantità in binario occorre usare ben dieci cifre, ottenendo il numero 1010010111 (figura 4).

rappresentazione binaria del numero 663
Figura 4: rappresentazione binaria della quantità 663

Circuiti elementari di memorizzazione

Nei calcolatori le sequenze di valori binari che costituiscono un numero vengono conservate, o memorizzate, in circuiti elettronici definiti "bistabili" (figura 5).
Ognuno di questi circuiti, che può assumere due stati equivalenti allo zero o all'uno,
circuito bistabile o flip-flop
figura 5
è quindi in grado di conservare la più piccola quantità di informazione possibile: tale quantità binaria viene detta bit.
Poichè, come si è visto, la rappresentazione di una quantità si basa su una sequenza più o meno lunga di informazioni semplici (zeri e uni), occorre servirsi di moltissimi circuiti elementari che concorrono a costituire un numero.
Tali circuiti, detti anche "celle di memoria", vengono in genere utilizzati a gruppi di otto, costituendo quello che viene definito come byte. Un byte può pertanto memorizzare un numero di valori, o combinazioni, pari a 28, ovvero a 256; si conclude quindi che il valore di un byte può essere compreso fra zero e 255.

La figura 5 mostra un esempio molto semplifice di circuito capace di memorizzare l'informazione uno o zero: se si preme un attimo il pulsante P1, l'uscita OUT scatta a zero; tale stato rimane fino a quando viene premuto il pulsante P2, che fa passare l'uscita OUT al valore della tensione +V (che nell'elettronica digitale equivale a "uno").

codifica binaria della lettera A
figura 6

Codifica dei simboli alfanumerici

Con gli otto circuiti elementari che costituiscono un byte è possibile codificare e memorizzare diverse entità abitualmente trattate nei computer. Le lettere dell'alfabeto, utilizzate nella scrittura dei testi, i caratteri numerici e tanti altri caratteri di servizio, vengono definiti con un valore numerico secondo un apposito codice, detto codice ASCII: alla lettera "a" minuscola corrisponde per esempio il codice 97, mentre alla "A" maiuscola corrisponde il codice 65 (figura 6).
volto femminile
figura 7

Codifica delle immagini

Nel campo delle immagini, il byte può codificare una sfumatura di grigio, esprimendo con il suo valore numerico da zero a 255 il livello di luminosità di un determinato punto dell'immagine.
Nel caso di immagini a colori si utilizzano per ogni punto tre bytes, secondo la codifica RGB (Red - Green - Blu): il valore del primo byte indica l'intesità del rosso, il secondo byte indica l'intensità del verde ed il terzo quella del blu.
particolare di immagine per evidenziare i pixels
figura 8
Codificando il colore con tre bytes è possibile riprodurre un numero davvero elevato di tinte e sfumature, pari a 28 x 28 x 28, ovvero più di 16 milioni di colori.
Osserviamo come esempio l'immagine di figura 7; se proviamo ad ingrandirne un particolare (figura 8), ci accorgiamo che essa è composta da tanti piccolissimi quadratini, che vengono definiti pixel.
Ogni pixel è un'area infinitesimale caratterizzata da un colore unico, che viene appunto definito con tre valori distinti; nel caso di figura 8, per esempio, il pixel indicato dalla freccia rossa è composto da 89/256 di rosso, 99/256 di verde e 102/256 di blu.
In termini binari, il pixel sarebbe definito da tre bytes aventi rispettivamente i seguenti valori: 01011001;01100011;01100110

Codifica dei suoni

Abbiamo visto che la codifica digitale di un'immagine richede una scansione progressiva di tutta l'area, per trasformare ogni punto in un valore numerico recante l'informazione della luminosità e della composizione cromatica.
piccolo manuale di elettronica applicata
In campo audio, invece, la codifica di un evento sonoro richiede la cattura dell'intensità del suono istante dopo istante; tale operazione viene denominata campionamento. Quanto più frequenti sono i campionamenti, più fedele sarà la codifica, o registrazione, del suono. Considerando che l'orecchio umano è in grado di percepire frequenze acustiche quasi fino a 20000 Hz, per una riproduzione fedele si ritiene necessario acquisire campioni sonori alla frequenza di 48000 Hz, ovvero 48000 letture di intensità per ogni secondo.
Un altro aspetto riguarda la quantizzazione, ovvero il numero di bit che vengono utilizzati per memorizzare ogni singolo campione. Se non è richiesta una qualità eccellente, gli otto bit di un byte consentono di esprimere con discreta fedeltà il livello di un suono; essendo la dinamica il rapporto tra il suono piu debole e quello più forte che si è in grado di rappresentare, ai 256 valori possibili di un byte corrisponde una dinamica di 48 dB. La migliore qualità si ottiene tuttavia utilizzando campioni basati su 24 bit (ovvero 3 bytes), cui corrisponde una dinamica (anche se solo teorica) di ben 144 dB.





 raffaele ilardo 



no">