|
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:
◊
∇ ♦¤
| |
.gif) |
| 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
.gif) |
 |
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.
.gif) |
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).
.gif) |
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:
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 |
.gif) |
| |
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
|