Decimale e binario
11-Ott-06
Nei post precedenti abbiamo parlato più volte di sistema di numerazione binario indicandolo come l’unico utilizzabile dai computer per i calcoli interni.
Ma cos’è un sistema di numerazione?
Anche questo è un concetto difficile da nanospiegare ma… ci proveremo!
Cominciamo a parlare di ..storia! Per comprendere i sistemi di numerazione bisogna infatti sapere che il modo con cui “trattiamo” comunemente i numeri, l’aritmetica che ci viene insegnata fino dalle scuole elementari, non sono altro che convenzioni, create nel tempo per rappresentare i numeri e realizzare in modo semplice le operazioni.
Gli antichi Romani, ad esempio, utilizzavano un sistema complesso di rappresentazione dei numeri che è forse bello da vedere sui monumenti
ma rendeva praticamente impossibile i calcoli, che infatti venivano realizzati utilizzando abachi e altri strumenti particolari.
Il sistema che utilizziamo attualmente (il sistema decimale), al contrario, è molto adatto al calcolo aritmetico perchè fa parte di una famiglia di sistemi di numerazione chiamati posizionali.
I sistemi posizionali, supportati nel frattempo dall’invenzione dello zero, si basano sul principio che ogni cifra (i diversi simboli utilizzati per rappresentare i numeri) ha un valore diverso a seconda della posizione in cui viene scritta. E infatti, chi non conosce i termini decina, centinaia, migliaia?
Fin qui si tratta di nozioni abbastanza note
.
Tuttavia, si tende a dimenticare che il sistema decimale è soltanto uno dei possibili sistemi posizionali (non l’UNICO!). Infatti questi sistemi funzionano per qualsiasi base si voglia prendere in considerazione. La base può essere un qualunque numero naturale (tranne 0 e 1): nel caso del sistema decimale la base è 10 e comprende, pertanto, dieci cifre (da 0 a 9). Se volessimo usare la base 4 avremmo soltanto quattro cifre a disposizione(da 0 a 3) mentre se usassimo come base 16 dovremmo invece “inventare” altre 6 cifre (il sistema in base 16 si chiama esadecimale e, tra l’altro, viene molto usato proprio in informatica. Esso comprende le cifre da 0 a 9 più le lettere da A a F).
Ogni sistema posizionale è basato su una sorta di equazione di base per cui ogni numero può essere espresso come una espressione nella quale si sommano le diverse cifre che compongono il numero moltiplicandole per la base elevata ad una potenza diversa a seconda della posizione che occupa la cifra. Ad esempio, il numero 123,45 in base 10 (quando si vuole esplicitare la base si scrive 12310) è composto come:
1 x 102 + 2 x 101 + 3 x 100 + 4 x 10-1 + 5 x 10-2
Si noti come le potenze partano da 0 per le unità e crescano come positive andando verso sinistra mentre sono invece negative a destra della virgola, per rappresentare i decimali. Vale anche la pena ricordare che 100 = 1; qualunque numero elevato alla potenza 0 è uguale a 1!
Avendo compreso questo meccanismo, si può pensare di creare sistemi di numerazione in qualunque base! Ma a cosa servirebbero? E quali altri basi potrebbero essere utili?
Gottfried Wilhelm Leibniz, un filosofo e matematico tedesco vissuto a cavallo tra il ‘600 e il ‘700 pensò che sarebbe stato utile un sistema iper-semplificato che usasse il minore numero possibile di cifre. La base di questo sistema è 2 e comprende soltanto due cifre, 0 e 1, da cui il nome binario. Leibniz considerava il sistema binario come un qualcosa di puro e di essenziale, e arrivava a dire che “allorchè i numeri sono ridotti ai principi più semplici, e cioè allo 0 e all’1, appare ovunque un ordine meraviglioso”.
Certo, all’epoca non si vedevano grandi applicazioni pratiche e il sistema binario fini nel dimenticatoio per un po’ di tempo, finchè non tornò in auge nella seconda metà dell’800 grazie a George Boole, un matematico inglese considerato il padre della logica moderna.
Lo sviluppo dei primi calcolatori elettronici e la comoda associazione dei simboli 0 e 1 con una serie di rappresentazioni fisiche interne ai computer (assenza/presenza di segnale o di corrente, polarità di un tipo o di un altro ecc.) hanno fatto il resto, rendendo il sistema di numerazione binario nuovamente popolare.
Riepilogando, nel sistema binario, le cifre utilizzabili sono soltanto 0 e 1 e i numeri si scrivono come sequenze di questi due unici simboli:
1101 equivalente a:
1 x 23 + 1 x 22 + 0 x 21 + 1 x 20
in decimale, equivale al numero 13.
Esercizi:
- Si approfondisca la storia dei sistemi di numerazione, partendo da Wikipedia
- Calcolare l’equivalente in decimale dei seguenti numeri:
- 1101002
- 4568
- A0116
- Trasformare in binario i seguenti numeri decimali:
- 10
- 47
- 256


erano in grado di memorizzare testi: è sufficiente una tabella di conversione con la quale assegnare ad ogni lettera un numero corrispondente, come nei “codici segreti” con i quali si giocava da bambini. Una volta stabilito che la lettera “A” corrisponde al numero 41 (è un esempio!!), ogni volta che chiunque preme il tasto con la “A” sulla tastiera, da qualche parte nella memoria del computer viene inserito questo numero. Certo, le cose non sono proprio così semplici: ad esempio bisogna trovare un sistema di codifica che vada bene per tutte le lingue del mondo (pensiamo al cinese!!!). In ogni modo, la logica è elementare: una lettera = un numero formato da un certo numero di cifre. Attualmente si usano codici formati da 7/8 cifre (ad esempio il codice
Basta assegnare un codice numerico ad ogni diverso colore e..il gioco è fatto. Una immagine diventa così memorizzabile sotto forma di una sequenza di numeri. Da qui il nome bitmap=mappa di bit, ovvero numeri. Già, ma quanti numeri? La dimensione dipende dalla grandezza dell’immagine, dalla griglia più o meno fitta (si chiama anche risoluzione) e da quanti bit si usano per codificare il colore (si chiama anche profondità del colore). Più questi valori sono elevati (griglia molto fitta=alta risoluzione e molti bit utilizzati=grande profondità di colore) è più l’immagine digitalizzata sarà simile all’originale. Il risultato finale è generalmente un file di dimensioni piuttosto consistenti, in gergo si dice che le immagini pesano più del testo. Questa modalità di digitalizzazione è molto efficace per digitalizzare fotografie, meno per schemi e disegni tecnici. Le fotografie che si trovano sul Web e le foto scattate dalle fotocamere e dai telefonini sono tutte di tipo bitmap.
Il suono viene infatti “analizzato” molte volte per secondo (fino a 44.100 volte, come nel caso dei comuni CD musicali, e allora si dice che la frequenza di campionamento è di 44.100hz o 44,1Khz). Ognuno di questi “campioni” (da cui “campionamento”) costituisce dunque l’ormai consueto “elemento base” al quale si può finalmente assegnare un numero. In questo caso il numero rappresenta l’ampiezza del suono nell’istante considerato. Anche per i suoni è importante la profondità ovvero il numero di bit utilizzati per esprimere il valore dell’ampiezza del suono. E’ facile intuire come il peso di un file audio (come vengono spesso chiamati i suoni digitalizzati) sia ancora più elevato di quello, già rilevante, delle immagini. Il suono campionato è quello che ascoltiamo normalmente quando inseriamo un CD nello stereo di casa (a proposito, la capacità di un CD, circa 650Megabyte è proprio quella minima necessaria a contenere circa 74 minuti di musica campionata a 44Khz e con 16bit di profondita (il campionamento alla cosiddetta qualità-CD)! Non ci credete? Basta fare qualche moltiplicazione, provateci voi, vedi gli esercizi in fondo alla lezione)
