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.
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.
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.
figura 3
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:
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).
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,
figura 5
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").
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).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.
figura 8
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.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.