Matematica binaria / ottale / esadecimale

 

I computer sono costituiti da circuiti elettronici in cui le informazioni sono rappresentate da zone attive (in cui passa corrente) e zone interdette (in cui non vi è passaggio di corrente). Dal punto di vista logico questo corrisponde a 1 per passaggio di corrente e quindi presenza di informazione e 0 per il non passaggio di corrente e quindi assenza di informazione. Il matematico inglese George Boole preferiva chiamare Vero e Falso le due condizioni sopraccitate creando così una propria matematica chiamata booleana e che corrisponde perfettamente a quella binaria (2 valori: 0 e 1).

Prima di descrivere il sistema binario occorre puntualizzare alcuni elementi sul sistema decimale da noi quotidianamente utilizzato:
Innanzi tutto decimale significa che abbiamo dieci simboli (0,1,2,3,4,5,6,7,8,9). Tutti i numeri che superano 1 cifra non sono altro che combinazioni degli stessi 10 simboli ed a seconda della posizione che la cifra occupa essa ha un determinato valore, un peso. Si dice quindi che il sistema decimale è posizionale pesato. Per fare un esempio il numero 1 se compare per ultimo vale 1 (xxxx1), se compare al penultimo posto vale 10 (xxx1x), se compare al terzultimo vale 100 (xx1xx).
Semplificando possiamo ricavare l'intero numero anche moltiplicando 10 per se stesso un numero di volte uguale alla posizione che occupa la cifra 1. Per esempio il numero 101 che chiamiamo ABC è formato da un 1 nella posizione n.0 (partendo da destra). Se è 0 non lo moltiplichiamo, quindi resta 1 e C=1. Poi abbiamo 0 nella posizione n.1, quindi 10x0=0. Quindi B=0. Poi abbiamo 1 nella posizione n.2. Quindi A= 10x10x1 = 100. Sommando A+B+C abbiamo 100 + 0 + 1 = 101.
Così, per esempio se vogliamo scomporre 125 (ABC) scriviamo: C=1 x 5 = 5 (10 viene moltiplicato per se stesso 0 volte =1);   B= 10 x 2 = 20 (dieci moltiplicato per se stesso una volta sola);  A= 10 x 10 x 1 = 100 (dieci moltiplicato per se stesso due volte);   A + B + C= 100 + 20 + 5 =125.
Riguardo poi alla successione dei numeri si scrive 0,1,2,3,4,5,6,7,8,9,10 (secondo simbolo seguito dal primo), 11 (secondo simbolo seguito dal secondo), 12 (secondo simbolo seguito dal terzo), 13 (secondo simbolo seguito dal quarto), ecc...


Nel sistema binario abbiamo solo due simboli (0,1). La successione avviene in modo analogo al sistema decimale: 0,1, 10 (secondo simbolo seguito dal primo), 11 (secondo simbolo seguito dal secondo), 100 (secondo simbolo seguito dal primo e seguito dal primo), 101 (secondo simbolo seguito dal primo e seguito dal secondo), 110 (secondo simbolo seguito dal secondo e seguito dal primo), 111 (secondo simbolo seguito dal secondo e seguito dal secondo) ecc...

Per rendere meglio l'idea della successione i simboli saranno sostituiti dalle lettere dell'alfabeto. Vediamo cosa accade.

sistema decimale: A,B,C,D,E,F,G,H,I,L (da 0 a 9)
 

A BA CA DA EA
B BB CB DB EB
C BC CC DC EC
D BD CD DD ED
E BE CE DE EE
F BF CF DF EF
G BG CG DG EG
H BH CH DH EH
I BI CI DI EI
L BL CL DL EL

 

sistema binario: A,B (da 0 a 1)
 

A BA BAA
B BB BAB
    BBA
    BBB


 

Per quanto riguarda il peso delle cifre binarie bisogna moltiplicare, partendo da destra, 2 per se stesso per un numero di volte uguale alla posizione occupata dalla cifra e per il valore della cifra stessa. Facendo un esempio prendiamo il numero binario 1101 (che si legge uno uno zero uno e non 1.101) possiamo scrivere:

1101 = ABCD

-    posizione 0:        D = 1 x 1 (2 moltiplicato 0 volte = 1) = 1
-    posizione 1:        C = 0 x 2 (2 moltiplicato 1 sola volta) = 0
-    posizione 2:        B = 1 x 2 x 2 (2 moltiplicato 2 volte) = 4
-    posizione 3:        A = 1 x 2 x 2 x 2 (2 moltiplicato 3 volte) = 6

A + B + C + D = 6 + 4 + 0 + 1 = 11 (undici in decimale)

Si scrive quindi che 11012 = 1110. I due numeri più piccoli (2 e 10) rappresentano il sistema di conteggio (binario e decimale) e si chiamano basi. Il numero 1101 si dice che è in base 2, mentre 11 è in base 10.

E' importante capire come il computer elabora queste informazioni per comprendere al meglio le sue capacità di calcolo. Ogni qualvolta che noi immettiamo dei numeri tramite la tastiera in formato decimale, i circuiti del computer li traducono in numeri binari, perché così possono compiere le operazioni ed elaborarli. A risultato ottenuto vengono poi riconvertiti in numeri decimali per essere da noi compresi. Agli albori dell'informatica tutto questo lavoro era compito del programmatore che infilava delle schede perforate in appositi lettori i quali memorizzavano le sequenze di buchi come 1 e 0.
Facciamo ancora un esempio, banale per noi ma complesso per un computer (o semplicemente una calcolatrice da tavolo). Voglio eseguire l'operazione 3 + 3 = 6. Ecco come si comporta un calcolatore elettronico:
i due addendi (310) vengono tradotti in 112, poi sommati secondo le regole della matematica binaria e si ricava il risultato: 1102. riconvertendo otteniamo 0 x 1 + 1 x 2 + 1 x 2 x 2 = 0 + 2 + 4 = 610.

Vi chiederete adesso a cosa serve avere un numero in formato binario e perché il computer può svolgere operazioni solo su questo formato. La riposta è che per ogni bit (cifra binaria) corrisponde una cella di memoria, la quale sarà carica elettricamente se deve contenere un 1 e scarica se deve contenere uno 0. In questo modo i circuiti ad esse collegati funzionano o non funzionano in base alla carica accumulata dalla cella. Si comportano cioè come degli interruttori.
Supponiamo di avere due lampade e voler verificare tutte le condizioni di funzionamento. Potremmo per esempio utilizzare un bit per ogni lampada (vale 1 se accesa, vale 0 se spenta) e con due soli bit rappresenteremmo le 4 combinazioni possibili (figura). Applicando poi un semplice contatore numerico abbiamo una sequenza predeterminata.

Si nota anche un'altra cosa: che il numero di combinazioni corrisponde al numero della base elevato il numero delle cifre. Per esempio un numero di 3 cifre in base dieci comprende 103 = 10 x 10 x 10 = 1000 combinazioni (da 0 a 999). Un numero di 3 cifre binario comprende 6 combinazioni: 23 = 2 x 2 x 2 = 6 (da 000 a 111).

 

Sistemi ottale ed esadecimale

I  sistemi ottale (base 8) ed esadecimale (16) hanno le stesse regole del sistema binario, varia solo il numero di simboli.
Nel sistema ottale i simboli sono 8 (0,1,2,3,4,5,6,7). La successione sarà quindi 0,1,2,3,4,5,6,7,10,11,12,13,14,15,16,17,20,21,22,23,ecc...
Nel sistema esadecimale i simboli sono 16 e finiti i numeri si utilizzano le lettere dell'alfabeto (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F). La successione sarà quindi 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20,21,22,23,24,25,26,27,28,29,2A,2B,2C,2D,2E,2F,ecc..

Le sole ragioni per cui a volte in informatica si utilizzano numeri in formato ottale ed esadecimale è che serve meno spazio per memorizzare la stessa informazione. Per esempio osservate quante cifre ha lo stesso numero da 24 bit espresso nei diversi sistemi:

1111111111111111111111112 = 777777778 = 1677721510 = FFFFFF16

 

  

Torna alla Home page        Torna a Nozioni di base        Torna a Software