Esercitazioni pratiche di elettronica/I sistemi di numerazione
Discorso introduttivo
[modifica | modifica sorgente]"Il saper fare di conto", è una delle operazioni più difficili e che viene invece considerata con sufficienza e superficialità con il risultato che se parli di numerazione in base 2 oppure in base 8 oppure in base 16, inizialmente ti sembra di parlare ad una popolazione incontrata dall'enterprise in una delle sue esplorazioni intergalattiche. Bando agli scherzi! La numerazione avviene accostando un certo numero di cifre numeriche e generalmente siamo abituati a scrivere i numeri in base 10, accostandoli a partire da sinistra con le cifre aventi peso maggiore e muovendosi verso destra con le cifre aventi peso minore. Ad esempio se scrivo 7348 settemilatrecentoquarantotto, sto scrivendo praticamente una quantità pari a 7 migliaia + 3 centinaia + 4 decine + 8 unità. Questo lo abbaimo studiato alle scuole elementari, ma siamo sicuri di averlo capito?
Quanto abbiamo appena detto merita innanzitutto una generalizzazione in modo che la tecnica con la quale siamo abituati a scrivere i numeri in base 10 ci possa essere ugualmente utile per scrivere numeri ovvero saper contare, in sistemi di numerazione che adottano altre basi numeriche.
Chiariamo quindi cosa vuol dire base:
Un esempio chiarirà meglio quanto stiamo per dire; affermare che un numero è espresso in base 10 vuol dire che quel numero è stato costruito con un numero di oggetti pari a 10 e questi oggetti sono precisamente le cifre numeriche a partire da zero (0) fino a nove (9).
Se invece un numero è in base 2 allora ho adoperato esclusivamente 2 oggetti per costruirlo che sono le cifre numeriche da zero (0) a uno (1).
In generale possiamo quindi stabilire la regola che:
Un numero si esprime in una certa base se si adopera per la sua costruzione un numero di cifre pari alla base adottata e tali cifre vanno da zero (0) alla (base - 1).
Quindi...
- la base 10 usa le cifre da 0 a 9
- la base 2 le cifre da 0 a 1
- la base 8 le cifre da 0 a 7
- la base 16 le cifre da 0 a 15.
Per le basi maggiori di 10, in particolare noi utilizzeremo spesso e volentieri la base 16, si pone il problema che le cifre numeriche del sistema che utilizziamo noi sono al massimo in numero di 10 (le cifre che vanno da 0 a 9) e quindi sono state introdotto delle lettere che individuino univocamente le cifre numeriche, ovvero gli oggetti, che devono rappresentare il decimo, l'undicesimo, il dodicesimo....fino al quindicesimo oggetto. Ecco perché per la numerazione in base 16, a differenza delle altre basi le cifre numeriche sono:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
La conversione da una base all'altra
[modifica | modifica sorgente]In fase progettuale di un hardware o di un software si avrà a che fare spesso e volentieri, con il dover convertire un numero espresso in una certa base, in un'altra base più adatta al sistema che stiamo utilizzando in quel momento.
Ecco perché qui introduco alcuni algoritmi di conversione da una base all'altra che sono molto utili nel nostro bagaglio tecnico.
- Un po' di matematica non guasta...
Prima di iniziare è bene che l'insegnante spieghi la seguente formula che esplode
un numero N in base B nella sommatoria delle cifre che compongono il numero
moltiplicate per la base elevata al peso che la cifra stessa ha nel numero:
e dove H è il numero di bit che compongono il numero.
In termini puramente matematici, effettuare una conversione di base equivale a trovare i coefficienti
del numero nella base desiderata a partire dalla seguente equivalenza:
dove h è il numero di bit che compongono il numero in base
e k è il numero di bit che compongono il numero in base
ed entrambe devono dare come risultato lo stesso numero in base 10.
Esempio:
[modifica | modifica sorgente]
76 IN BASE 10 = 1001100 IN BASE 2.