INTRODUZIONE AL SISTEMA BINARIO

di Federico Peiretti

  Le immagini che illustrano questi appunti sono disegni originali di Carl Barks, il padre di Paperino, scomparso all’età di 99 anni, nel 2000. In questo modo, vogliamo rendere omaggio al grande disegnatore, la cui matita ha illustrato per tanti anni le avventure del papero più famoso e più amato del mondo.

 

 

La prima lezione, al primo anno delle superiori, è dedicata allo zero. La seconda al sistema binario. Ed è curiosa la reazione degli studenti, addirittura la loro sorpresa, a volte, nello scoprire che esistono altri numeri, oltre quelli con i quali sono stati abituati a lavorare. Sovente lo studente arriva dalla scuola media senza una riflessione adeguata sui vari concetti che ha imparato. Li sa usare meccanicamente, senza saperne valutare i limiti, i campi in cui è possibile usarli e dove invece è proibito. Speriamo che questo lavoro possa servire per smontare una lezione troppo cattedratica e che l’insegnante, sceso dalla cattedra, sia disponibile a lavorare con i suoi studenti, per una “matematica costruita insieme, insegnante e allievo – afferma Hilary Povey della Sheffield Hallam University - vista come prodotto del pensiero dell’uomo, e quindi storicamente collocata, influenzata da chi la studia e da chi la insegna e quindi mutevole. Di conseguenza, si tiene conto dell’indagine dello studente e del momento di elaborazione del significato di un concetto . Il punto focale si sposta dalla presentazione di “ciò che si conosce” da parte dell’insegnante all’indagine di “ciò che non si conosce” da parte dello studente. Questo consente di sviluppare la capacità critica dello studente, offrendogli la possibilità di capire che le cose possono anche essere diverse da come ci vengono presentate”
“Chi insegna all’Università agli studenti di Fisica, Informatica, Ingegneria, sperimenta che gli studenti che arrivano dalla maturità non hanno alcuna idea che la matematica possa uscire da se stessa, da quel gioco (?) gratuito che hanno subito per anni, non hanno idea di come affrontare un problema matematizzandolo, come scegliere le strutture e gli strumenti adatti, cosa voglia dire ragionare formalmente, perché si facciano dimostrazioni, come controllare e valutare i risultati delle loro calcolatrici. Negli Usa c’è un’analoga preoccupazione per il rendimento matematico medio della popolazione, con dati anche lì contraddittori, ma almeno ci si muove, in una continua rivoluzione e sperimentazione di contenuti e forme di presentazione”.

F. P.


1. Oltre il sistema decimale.

L'uomo usa normalmente il sistema di numerazione decimale, probabilmente perché ha dieci dita. Il sistema decimale è collegato direttamente alla conformazione fisica dell'uomo e all'importanza che le mani hanno sempre avuto, anche nelle operazioni di calcolo. Se dobbiamo contare un gruppo di oggetti, ad esempio disposti su un tavolo, sentiamo la necessità di indicarli, uno ad uno, con l’indice. E il bambino, se deve eseguire un calcolo, conta sulle dita.

L'abitudine di contare a gruppi di dieci si è imposta in tutto il mondo, ma il sistema decimale non è l'unico ad essere usato. Il contadino, ad esempio, conta ancora le uova a dozzine e tutti noi misuriamo il tempo o gli angoli procedendo di sessanta in sessanta.
Il sistema di numerazione decimale, come hai già visto, si dice anche in base dieci e usa dieci simboli, cioè le cifre

0, 1, 2, 3, 4, 5, 6, 7, 8 e 9

con le quali si scrivono tutti i numeri.


In generale possiamo dire che:
La base di un sistema di numerazione posizionale ¦corrisponde al numero di simboli usati per scrivere tutti i numeri ed indica quante unità di un certo ordine sono necessarie per formare un'unità dell'ordine immediatamente superiore.
Per definire un altro sistema di numerazione si dovrà quindi scegliere la base opportuna.

Immaginiamo, ad esempio, un pianeta abitato da esseri intelligenti che hanno soltanto cinque dita. Il loro sistema di numerazione, probabilmente, si baserebbe su gruppi di cinque e tutti i loro numeri si scriverebbero soltanto con cinque cifre. Per rappresentare queste cinque cifre potremmo immaginare simboli nuovi, come ad esempio:

◊ ∇ ♦¤

 
Ma, per nostra comodità, manteniamo i vecchi simboli:

0, 1, 2, 3, 4

In questo sistema di numerazione cinque unità di un certo ordine formano un'unità dell'ordine immediatamente superiore. Si procede a cinquine, non più a decine.

Il numero 421, ad esempio, nel sistema in base 5, avrà un significato ben diverso dallo stesso numero riferito al sistema in base 10: 421 sono 4 cinquine di cinquine, 2 cinquine e 1 unità.
La scrittura con notazione esponenziale evidenzia questa differenza.

Nel sistema in base 10, 421 può essere scritto:

42110 = 4x102 + 2x101 + 1x100

Mentre, nel sistema in base 5, la stessa scrittura 421 diventa:

4215 = 4x52 + 2x51 + 1x50 = 111

Per indicare che un numero è scritto in una base diversa da 10, si scrive la base stessa in basso, a destra del numero. Nel nostro esempio precedente, 4215 ci dice che il numero in base 5.
Se non ci sono indicazioni della base si conviene che questa sia 10. Lo stesso numero in base dieci, 42110, si scrive quindi semplicemente 421.
La lettura dei numeri in base diversa da 10, non essendoci più unità, decine, centinaia, migliaia e così via, si fa leggendo semplicemente la sequenza delle cifre seguite dalla base indicata. Ad esempio: 4215 si legge "quattro, due, uno in base cinque".
Vediamo ancora un esempio nel sistema di numerazione in base 8, cioè nel sistema ottale, che viene utilizzato spesso dai programmatori dei calcolatori elettronici. In questo sistema tutti i numeri si possono rappresentare con le otto cifre:

0, 1, 2, 3, 4, 5, 6, 7


Osserva che otto unità di un certo ordine formano un'unità dell'ordine immediatamente superiore.
In questo sistema di numerazione, ad esempio, il numero 524 corrisponde a:

5248 = 5x82 + 2x81 + 4x80 = 340.


Per indicare che tale numero è in base 8 si scrive:
5248 e si legge "cinque, due, quattro, base otto".

Possiamo anche definire sistemi di numerazione aventi per base un numero di cifre superiore al 10 e utilizzeremo le lettere dell'alfabeto maiuscolo per indicare le cifre oltre il 9.

Ad esempio, le cifre del sistema di numerazione in base 16 o esadecimale, anch'esso molto utilizzato dai programmatori sono le seguenti:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

dove A, B, C, D, E ed F valgono, nel sistema decimale, rispettivamente 10, 11, 12, 13, 14 e 15.

In questo sistema di numerazione il numero B24AC, in notazione esponenziale è:

B24AC16 = B x 164 + 2 x 163 + 4 x 162 + A x 16 + C =
= 11 x 65.536 + 2 x 4.096 + 4 x 256 + 10 x 16 + 12 = 730 284

Vediamo ancora alcuni esempi.

a) 10AF16 = 1 x 163 + 0 x 162 + A x 16 + F =
= 1 x 4.096 + 0 x 256 + 10 x 16 + 15 = 4 271

b) 95A16 = 9 x 162 + 5 x 16 + A =
= 9 x 256 + 5 x 16 + 10 = 2 394

c) A0BC916 = A x 164 + 0 x 163 + B x 162 + C x 16 + 9 =
= 10 x 65.536 + 0 x 4.096 + 11 x 256 + 12 x 16 + 9 = 658 377

Per capire il procedimento che ci permette di passare dal sistema di numerazione decimale ad un altro sistema non decimale, soffermiamoci un momento su un numero qualsiasi scritto in base dieci, ad esempio, 4628.
Raggruppare le unità a decine corrisponde alla divisione del numero stesso per dieci, tenendo poi conto solamente dei resti. Infatti se dividiamo 4 628 per 10, otteniamo il quoziente 462 che rappresenta le decine e il resto 8, che rappresenta le unità del numero dato. Se dividiamo ancora per 10 il quoziente 462, otteniamo un nuovo quoziente, 46 che rappresenta le centinaia e il resto 2, che rappresenta le decine del numero dato. Se dividiamo poi 46 per 10, otteniamo 4 e resto 6 che rappresenta le centinaia del numero dato. Come ultimo passaggio dividiamo ancora 4 per 10. Otteniamo per quoziente 0 e per resto 4, che rappresenta le migliaia del numero dato. Le operazioni di divisione terminano quando si arriva al quoziente 0. I resti della successione di divisioni indicate in figura rappresentano proprio le unità del primo, secondo, terzo e quarto ordine del numero dato. Se li riscriviamo in ordine inverso, cioè partendo dall'ultimo resto trovato, otteniamo proprio 4 628.

Con un procedimento analogo possiamo passare dal sistema decimale a qualsiasi altro sistema di numerazione. Vediamo, ad esempio, come si passa dal sistema decimale, con il numero 734, al sistema in base 5:


Se scriviamo i resti nell'ordine inverso, a partire dall'ultimo, otteniamo il numero 10414 in base cinque, corrispondente al numero 734 in base dieci: 734 => 104145
Facciamo la verifica:


104145 = 1 x 54 + 0 x 53 + 4 x 52 + 1 x 5 + 4 =
= 1 x 625 + 0 x 125 + 4 x 25 + 1 x 5 + 4 =
= 625 + 100 + 5 + 4 = 734.


In generale:
Per scrivere un numero in una data base, ad esempio 2, 3, 4,..., basta dividere il numero per la base, ossia per 2, 3, 4,... e dividere poi per lo stesso numero i successivi quozienti fino ad avere quoziente zero. I resti, scritti in ordine inverso, corrispondono al numero in base 2, 3, 4,...

2. Il sistema di numerazione binario.

Un sistema di numerazione molto importante per il calcolatore, è il sistema binario o sistema di numerazione in base due, con le due cifre 0 e 1.
La sua importanza deriva dal fatto che viene utilizzato molto spesso dai circuiti del calcolatore che eseguono le operazioni aritmetiche. Infatti per realizzare una buona sicurezza di funzionamento, il calcolatore preferisce distinguere soltanto due tipi di segnali elettrici all'interno dei suoi circuiti elettronici: un segnale forte o "alto" corrispondente alla cifra 1 e un segnale debole o "basso" corrispondente a 0.
In pratica, il calcolatore usa soltanto due "dita" e il sistema binario risulta quindi per lui il più "naturale". Con i due simboli 0 e 1 possiamo rappresentare tutti i numeri.
Ad esempio, il numero 100112 che scritto in forma polinomiale è:

1x24 + 0x23 + 0x22 + 1x21 + 1x20

corrisponde al numero decimale:
1x16 + 0x8 + 0x4 + 1x2 + 1x1 = 16 + 2 + 1 = 19.


Il sistema decimale si fonda sulle potenze del dieci e quello binario sulle potenze del due.
Per passare da un numero decimale al corrispondente numero binario dovremo procedere, come già abbiamo detto, con divisioni successive.


Vediamo, ad esempio, a quale numero binario corrisponda il numero decimale 25: 25 => 11001

I primi calcolatori usavano sovente sottili file di lampadine per visualizzare il risultato del calcolo. La lampadina accesa corrispondeva alla cifra 1 e quella spenta alla cifra 0. Ad esempio, in figura, è rappresentato lo schema di una parte del pannello di uno dei primi calcolatori che mostra il risultato del calcolo su una fila di lampadine (in questo caso il numero 27).

A questo punto potrebbe per esserti venuto qualche dubbio sull'utilità di scrivere i numeri nel sistema binario, una scrittura lunga e difficile, apparentemente molto meno comoda di quella del sistema decimale: per noi è molto più semplice calcolare 7 x 9 piuttosto che 1112 x 10012.
Tieni però presente che nel sistema binario ogni numero può essere scritto con due soli segni, lo 0 e l'1, facilmente traducibili, come dicevamo, in segnali elettrici per il calcolatore e che questo esegue rapidamente operazioni anche molto lunghe.
La sua velocità di calcolo infatti molto elevata. Mentre noi possiamo essere preoccupati di fronte ad una operazione come 3 903 876 427 x 7 983 450 281, anche il pi semplice dei computer può eseguire milioni di operazioni di questo tipo ogni secondo.
Inoltre, per fortuna, l'uso del sistema binario riguarda soltanto i suoi circuiti interni, poiché lo stesso calcolatore, come vedremo, a tradurre automaticamente per noi i numeri in ingresso o in uscita, in modo che possiamo lavorare sempre con il sistema di numerazione a noi più familiare, in base dieci.

3. Le operazioni nel sistema binario

Le operazioni, nel sistema binario, si eseguono con le stesse modalità del sistema decimale.

Addizione
Se i due numeri da sommare sono di una sola cifra, abbiamo quattro casi possibili:

0 + 0 = 0 1 + 0 = 1
0 + 1 = 1 1 + 1 = 10 (scrivo 0 con riporto di 1)

Useremo queste regole sulla somma di numeri di una sola cifra, per eseguire la somma di numeri di più cifre, ad esempio, 101112 + 10112. Disponiamo i due numeri in colonna, come nel sistema decimale, e poi addizioniamo le cifre di ogni colonna, partendo da destra:

 

riporti 11111
 
 
10111 +
 
1011 =
 
 
100010


La somma delle unità del primo ordine è
1 + 1 = 10, scriviamo 0 nella prima colonna e riportiamo 1 nella seconda.

La somma delle unità del secondo ordine è 1 + 1 = 10 e dobbiamo aggiungere il riporto 1:
10 + 1 = 11. Scriviamo 1 e riportiamo 1 nella terza colonna.

La somma delle unità del terzo ordine 1 + 0 = 1 e dobbiamo aggiungere il riporto 1:
1 + 1 = 10. Scriviamo 0, riportiamo 1 e così via.

Se invece dobbiamo sommare tre addendi di una cifra ciascuno, i casi possibili diventano otto:

0 + 0 + 0 = 0 0 + 1 + 1 = 10 (scrivo 0 con riporto di 1 )
0 + 0 + 1 = 1 1 + 0 + 1 = 10 (scrivo 0 con riporto di 1)
0 + 1 + 0 = 1 1 + 1 + 0 = 10 (scrivo 0 con riporto di 1)
1 + 0 + 0 = 1 1 + 1 + 1 = 11 (scrivo 1 con riporto di 1)

 


Sottrazione

Se i due numeri da sottrarre sono di una sola cifra, abbiamo quattro casi possibili:

0 - 0 = 0
1 - 0 = 1
1 - 1 = 0
0 - 1 = 1


Nell’ultimo caso la sottrazione, ovviamente, è possibile soltanto se possiamo prendere in prestito una unità dalla colonna dell'ordine immediatamente superiore. Tieni presente che l'unità in prestito non vale dieci volte quella precedente (come nell'operazione corrispondente del sistema decimale), ma il doppio e l'operazione che eseguiamo risulta quindi: 10 - 1 = 1.

Calcoliamo, ad esempio: 10012 - 1012

Disponiamo i due numeri in colonna, come nel sistema decimale e procediamo allo stesso modo:

 

1001 -
101 =
100

La differenza fra le unità del primo ordine è 1 - 1 = 0.
La differenza fra le unità del secondo ordine è 0 - 0 = 0.
La differenza fra le unità del terzo ordine è possibile solo prendendo a prestito l'unità del quarto ordine che spostata all'indietro di un posto vale il doppio, cioè 10 (2 nel sistema decimale) e quindi 10 - 1 = 1. Per verificare se il risultato è esatto, possiamo sommare la differenza al sottraendo e dobbiamo ottenere in questo modo il minuendo.

In questo caso:

100 +
101 =
1001

 

Moltiplicazione

Per moltiplicare due numeri binari dobbiamo seguire le stesse regole che già conosci dei numeri decimali. Se i due numeri hanno una sola cifra, i quattro casi possibili sono:

0 x 0 = 0 1 x 0 = 0
0 x 1 = 0 1 x 1 = 1

 

Esempi: a) 10012 x 112 b) 10112 x 1012

 

1001 x
1011 x
11=
101 =
1001
 

1011
 
1001
   
0000
   
1011
     
11011
 
 
110111
 


Divisione
Un esempio ci permette di verificare che il procedimento è analogo a quello seguito per i numeri decimali. Poiché le cifre del quoziente possono essere soltanto 0 oppure 1, il divisore o non è contenuto nel dividendo parziale oppure lo è una volta sola.

110112 : 1012

 

11001 101
101
101
  010  
  000  
 
    101  
    101  
 
0
 



In questo esempio il divisore 101 è contenuto 1 volta nel dividendo parziale 110 e la differenza parziale è 1. Abbassiamo poi la cifra successiva 0 e otteniamo il numero 10 in cui il divisore 101 è contenuto zero volte. Proseguiamo abbassando ancora la cifra 1 e, in questo caso, il divisore è contenuto una volta nel dividendo, con resto 0.
Possiamo fare la verifica della divisione moltiplicando il quoziente per il divisore e addizionando l'eventuale resto, che in questo caso uguale a zero.

 
101 x
 
101 =
 
 
101
 
 
000
   
 
101
     
 
 
11001
     
 

 

Il sistema binario in rete

http://utenti.garamond.it/gpm/units/aritm/binario/binario.htm
Una presentazione animata del sistema binario.

http://www.ulisse.bs.it/museo/storia/leibniz/leibniz.htm
La storia del sistema binario e le sue applicazioni all’informatica.

http://zeus.ing.unibs.it/infoa/Lucidi/BinariInteri0304.pdf
Una lezione sui numeri binari

http://www.asciitable.it/
Il codice ASCII, il più usato, per trasformare numeri in lettere e simboli diversi, con la corrispondenza in esadecimale e in base otto.

http://www.disi.unige.it/person/RovettaS/lab-inf/rappr.htm
Analisi della rappresentazione dell’informazione.

http://www.dipmat.unict.it/~gallo/SitoProg1/materialePDF/lezione02.pdf
Sistemi di numerazione per l’informatica.

http://it.wikipedia.org/wiki/Sistema_numerico_binario
La pagina della Wikipedia

http://www.med.unifi.it/didonline/anno-I/informatica/Codifica_numeri.html
La codifica di numeri e testi

In inglese

http://www.linuxguruz.com/foldoc/foldoc.php?ascii
http://webopedia.internet.com/TERM/A/ASCII.html
Tutto sul codice ASCII, ma in inglese…

http://nickciske.com/tools/binary.php
Una tabella interattiva per passare da testo a codice binario

http://www.swarthmore.edu/NatSci/echeeve1/Ref/BinaryMath/NumSys.html
Una bella lezione sui vari sistemi di numerazione.

http://www.swarthmore.edu/NatSci/echeeve1/Ref/BinaryMath/BinaryMath.html
L’aritmetica binaria.

http://www.teach-at-home.com/fastfacts/numbers/Binary.asp
Si scrive il numero decimale ed esce in binario, ottale ed esadecimale.

http://math.hws.edu/TMCM/java/DataReps/
Una tabella per passare dai decimali ai binari all’ASCII.

http://science.kennesaw.edu/~dward12/LabCD/Applets/APPLETS/NUMSYS/applet_frame.htm
Altra tabella di conversione.

http://www.usbyte.com/common/Binary%20System.htm
Introduzione al sistema binario

http://www.math.grin.edu/~rebelsky/Courses/152/97F/Readings/student-binary.html
Tutorial per il sistema binario

http://www.cut-the-knot.org/do_you_know/BinaryHistory.shtml
Storia del sistema binario

http://schoolscience.rice.edu/duker/robots/binarynumber.html
Sistema binario e introduzione ai robot


Federico Peiretti