SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema di numerazione posizionale; infatti, in un numero decimale, composto da più cifre, ogni cifra ha un certo "peso" in base alla posizione occupata all'interno del numero stesso (unità, decine, centinaia, migliaia,...). A volte, per questo motivo, si dice che un sistema come quello decimale è un sistema "pesato". Il valore di un numero decimale si ottiene sommando i prodotti tra il valore di ciascuna cifra che compone il numero e il relativo "peso", che dipende dalla posizione occupata dalla cifra. Ad esempio: 123 = 1 x 100 + 2 x lo + 3 x 1 = 100 + 20 + 3 Nell'esempio, la cifra 1 ha peso 100, la cifra 2 ha peso 10 e la cifra 3 ha peso 1. Si può osservare che in un numero decimale, partendo da sinistra, ogni posizione ha un "peso" che vale 1O volte quello della posizione che la precede. Il complemento a 9. Il complemento a 9 di un numero decimale si ottiene sottraendo a 9 ciascuna cifra del numero dato. I complementi a 9 delle diverse cifre decimali sono riportati nella seguente tabella: Esempio: Determinare il C. a 9 di: a) 11 il C. a 9 vale : 99-11 = 88 b) 123 il C. a 9 vale : 999-123 = 876 La sottrazione in complemento a 9 a) sottrazione di un numero decimale più piccolo da un altro più grande. 1
Si ottiene sommando il complemento a 9 del sottraendo (in questo caso, il numero più piccolo) al minuendo e poi sommando al risultato il riporto (carry), che in questo tipo di sottrazione è sempre presente: b) La sottrazione di un numero decimale più grande da un altro più piccolo Si ottiene sommando il complemento a 9 del sottraendo (in questo caso, il numero più grande) al minuendo (in questo caso, il numero più piccolo) ed infine complementando a 9 la somma ottenuta. In questo caso la somma non genera alcun riporto e quindi il risultato va scritto con il segno meno (-): Il Sistema di Numerazione Binario Il sistema di numerazione binario rappresenta un altro modo per contare. E' composto solo da due cifre, 0 e 1 (bit), e per questo è detto sistema di numerazione a base due. Le due cifre binarie sono 1 e 0. Come nel sistema decimale, i numeri binari espressi con più cifre ( 0 e 1 ) ad ogni posizione di un 1 o di uno 0 corrisponde un certo "peso" che ne determina il valore all'interno del numero stesso, proprio come la posizione di una cifra in un numero decimale determina il valore di quella cifra. Anche il sistema binario è un sistema posizionale. In un numero binario, i "pesi" delle varie posizioni a partire da destra corrispondono a potenze crescenti di 2. Il conteggio nel sistema binario Il conteggio in decimale inizia con 0, 1,..., 9 ed una volta esaurite le dieci cifre, si inizia una nuova posizione con la cifra 1, facendo poi seguire tutte le dieci cifre decimali: 10, 11, 12,..., 19; poi, sempre nella stessa posizione, si inizia una nuova serie con 2 seguita dalle 10 cifre, 20, 21,... ecc..., fino a 99. In questo modo si sono esaurite tutte le combinazione su due posizioni delle 10 cifre binarie. Per procedere nel conteggio da 100 fino a 999 occorre aggiungere una terza posizione per le cifre, a sinistra delle due precedenti. E così via. 2
Contare in binario è simile a contare in decimale, con l'unica differenza che in questo caso si hanno a disposizione solo due cifre: 0 e 1. Si inizia con 0, 1 esaurendo entrambe le cifre; occorre aggiungere un'altra posizione per le cifre e continuare a contare: l0, 11. Esaurite tutte le combinazioni di due cifre occorre una terza posizione. Con tre cifre possiamo continuare a contare: 100, 101, 110 e 111. A questo punto, per continuare, occorre sempre aggiungere una nuova posizione e così via. In figura è riportato il conteggio in binario dei numeri decimali da 0 a 15. Come mostrato nella tabella, per contare da 0 a 15 servono 4 bit. Di solito quando si devono rappresentare numeri in binario, si contano quanti bit servono per rappresentare il maggiore, 4 nel caso del numero 15, e si utilizzano per tutti i numeri sempre 4 bit. In questo modo il numero 0 espresso in binario con 4 bit sarà 0000, il numero 6 diventerà 0110, ecc.... La seguente tabella mostra i primi 15 numeri in binario a 4 bit: 3
Considerazioni sulla tabella: Partendo dalla prima riga, si può osservare che; a) La prima colonna alterna 1 zero e 1 uno; b) la seconda colonna alterna 2 zeri e 2 uni; c) la terza colonna alterna 4 zeri e 4 uni; d) la quarta colonna alterna 8 zeri e 8 uni. Conversione Binario Decimale Un numero binario è un numero pesato, come un numero decimale, perché il valore di una cifra dipende dalla posizione che essa occupa nel numero. Il peso associato ad una cifra di un numero binario è una potenza del 2, come mostrato in figura. La conversione del valore di un numero binario in decimale, si esegue sommando i prodotti di ciascuna cifra binaria per il corrispondente peso. Nell'esempio della figura precedente, il numero decimale corrispondente al numero binario 11001 si determina con il seguente metodo: 4
Le Operazioni Aritmetiche nel sistema binario 1) L'Addizione Le regole per l'addizione sono: Tre delle regole della tabella generano un risultato costituito da un unico bit, mentre la somma di due 1 produce il numero binario 2 espresso con due bit (10 in binario ). L'operazione si legge nel seguente modo: 1 + 1 fa 0 con riporto di 1 per la colonna successiva, di "peso" maggiore. Ad esempio: Partendo da destra la prima colonna si legge: 1 + 1 = 0, con un riporto di 1 per la colonna successiva a sinistra. Nella seconda colonna abbiamo quindi 0 + 1 = 1 a cui si deve aggiungere l' 1 del riporto dovuto alla colonna precedente: quindi 1 + 1 = 0, con un riporto di 1 per la colonna successiva più a sinistra. Nella terza colonna si ha 1 + 0 = 1 a cui si deve aggiungere l' 1 del riporto dovuto alla colonna precedente: quindi 1 + 1 = 0, con un riporto di 1 per la colonna successiva più a sinistra. Infine, in quest'ultima colonna è presente solo il riporto della terza colonna e genera solo 1. Il risultato finale quindi é: 101 + 011 = 1000 ( 5 + 3 = 8 ). 5
2) La sottrazione Le regole per la sottrazione sono mostrate nella tabella seguente: Nell'effettuare una sottrazione, può accadere di avere bisogno di un "prestito" dalla colonna successiva di "peso" maggiore. In binario, un prestito si rende necessario solo quando si deve sottrarre un 1 da uno 0. Come spiegato nella tabella, prendere in prestito un 1 dalla colonna successiva di peso maggiore, si origina un 10 2 nella colonna in cui si sta effettuando la sottrazione e quindi applicare la regola d). 3) La Moltiplicazione Le regole fondamentali per la moltiplicare binaria sono: 6
3) La Divisione La divisione binaria segue le stesse regole della divisione decimale: Il Complemento a 1 Il complemento a 1 di un numero binario si ottiene cambiando tutti gli 1 in 0 e tutti gli 0 in 1. Ad esempio: Il Complemento a 2 Il complemento a 2 di un numero binario si ottiene sommando 1 al complemento a 1 del numero dato. Ad esempio: Esiste anche un metodo molto rapido per ottenere il complemento a 2 di un numero binario, che sfrutta le seguenti due regole: 7
a) partendo da destra, si riscrivono i bit così come sono, fino al primo 1 che s'incontra incluso; b) i rimanenti bit vanno complementati a 1. La sottrazione in complemento a 1 La sottrazione tra due numeri binari può essere effettuata con le regole della sottrazione stessa viste in precedenza oppure ricorrendo al metodo del complemento a 1. Con questo metodo si esegue soltanto l'operazione di addizione. 1) caso in cui il Minuendo sia maggiore o uguale del Sottraendo (M >= S) Le regole da seguire per una corretta esecuzione dell'operazione sono: a) Determinare il complemento a 1 del Sottraendo (il numero più piccolo). b) Sommare il complemento a 1 ottenuto al Minuendo ( il numero più grande ). c) La somma del punto b) genera un riporto che va sommato alla somma stessa per ottenere il risultato della sottrazione data. Esempio. 2) caso in cui il Minuendo sia minore del Sottraendo (M <= S) Le regole da seguire per una corretta esecuzione dell'operazione sono: a) Determinare il complemento a 1 del Sottraendo ( il numero più grande). 8
b) Sommare il complemento a 1 ottenuto al Minuendo ( il numero più piccolo). c) La somma del punto b) non genera alcun riporto. Per ottenere il risultato della sottrazione occorre complementare a 1 la somma ottenuta. Infine, la mancanza di riporto nella somma indica che il risultato sarà negativo, quindi aggiungere il segno -. Esempio. La sottrazione in complemento a 2 1) caso in cui il Minuendo sia maggiore o uguale del Sottraendo (M >= S) Le regole da seguire sono: a) Determinare il complemento a 2 del Sottraendo ( il numero più piccolo). b) Sommare il complemento a 2 ottenuto al Minuendo ( il numero più grande). c) La somma genera sempre un riporto che va scartato; la somma senza il riporto rappresenta il risultato della sottrazione data. 9
Esempio. 2) caso in cui il Minuendo sia minore del Sottraendo Le regole da seguire sono: (M <= S) a) Determinare il complemento a 2 del Sottraendo ( il numero più grande). b) Sommare il complemento a 2 ottenuto al Minuendo ( il numero più piccolo). c) La somma del punto b) non genera alcun riporto. Per ottenere il risultato della sottrazione occorre complementare a 2 la somma ottenuta. Infine, la mancanza di riporto nella somma indica che il risultato sarà negativo, quindi aggiungere il segno Esempio. Entrambi i metodi di sottrazione presentano vantaggi quando vengono implementati con circuiti logici, perché permettono di eseguire le sottrazioni utilizzando solamente l'addizione. Il complemento a 2, inoltre, ha il vantaggio, rispetto al complemento a 1, di non dover implementare l'operazione del riporto finale; infatti, come visto in precedenza, nel caso del Minuendo maggiore del Sottraendo, il riporto va scartato. La conversione da Decimale a Binario Esistono due metodi per convertire un numero decimale in binario. a) Metodo della somma delle potenze di 2. Questo metodo consiste nel determinare l'insieme delle potenze di 2 la cui somma è uguale al numero decimale da convertire. Ad esempio: il numero decimale 15 può essere espresso come somma delle seguenti potenze di 2: 15 = 8 + 4 + 2 + 1 10
A questo punto esprimendo la somma in termini di potenze del 2, moltiplicando per i 1 i termini non nulli e per zero i termini nulli, che non compaiono nella somma. 8 = 1 x 2 3 4 = 1 x 2 2 2 = 1 x 2 1 1 = 1 x 2 0 Quindi: 15 = 1 1 1 1 Esempio: convertire il numero decimale 10 10 = 8 + 2 = 8 + 0 + 2 + 0 8 = 1 x 2 3 2 = 1 x 2 1 Le potenze 4 e 1 mancano nella somma, quindi vanno moltiplicate per 0: 0 = 0 x 2 2 0 = 1 x 2 0 Quindi: 10 = 1 0 1 0 b) Il metodo della divisione per 2 ripetuta. E' un metodo più sistematico per effettuare la conversione da decimale a binario. Per esempio, per convertire il numero decimale 10 in binario si inizia col dividere 10 per 2 e si prosegue a dividere per 2 ciascuno dei quozienti ottenuti, fino a quando non si ottiene un quoziente nullo. I resti prodotti da ciascuna delle divisioni per 2 formano il numero binario, ricordando che il primo resto prodotto è il bit meno significativo, LSB, del numero binario, mentre l'ultimo resto è il bit più significativo, MSB. 11
Ad esempio: Il Sistema di Numerazione Ottale Il sistema di numerazione ottale usa otto cifre: 0,1,2,3,4,5,6,7 Il conteggio in ottale usa la stessa tecnica del conteggio in decimale o in binario: 0,1,2,3,4,5,6,7,10,11,12,13,14,15,16,17,20,21,22,..., Per distinguere un numero ottale da un numero decimale si fa seguire al pedice del numero il numero 8 ( base del numero 8 ). Ad esempio 123 8. La conversione da Decimale a Ottale Il metodo maggiormente seguito è quello della divisione per 8 ripetuta, analogo a quello visto per il sistema di numerazione binario. 12
La conversione da Ottale a Binario Il sistema ottale trova la sua applicazione principale nella rappresentazione dei numeri binari, perchè con una cifra ottale si possono rappresentare 3 bit. Di conseguenza la lettura di un numero ottale è più semplice di quella di un numero binario e questo sistema viene utilizzato nelle applicazioni di I/O ( input/output ). Il metodo è molto semplice: ad ogni cifra ottale si associa la corrispondente terna di bit che rappresentano quella cifra in binario. 13
Nell'esempio seguente è mostrata la procedura per convertire un numero ottale in binario: La conversione da Binario a Ottale Per convertire un numero binario in ottale, si parte da destra ( dal bit LSB ) e procedendo verso sinistra si formano terne di bit. Nel caso l'ultima suddivisione fosse incompleta, ad esempio con soli 2 bit, aggiungere alla sinistra tanti bit 0, quanti servono per formare la terna completa. Ciascun gruppo di tre bit viene fatto associato alla corrispondere cifra ottale, come mostra l'esempio di figura: Il Sistema di Numerazione Esadecimale Il sistema di numerazione ottale usa 16 simboli, cifre e caratteri, ed è detto a base 16. 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F Nella quasi totalità dei sistemi digitali le elaborazioni sulle informazioni binarie si effettuano in gruppi che sono multipli di 4 e quindi il sistema esadecimale ben si presta a rappresentare i numeri binari di una certa consistenza, associando ad ogni simbolo esadecimale 4 bit. La tabella seguente mostra i primi 16 numeri in decimale, binario, esadecimale: 14
Il conteggio in esadecimale usa la stessa tecnica del conteggio in decimale o in binario: 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,..., La conversione da Binario a Esadecimale Il metodo è molto semplice e veloce: iniziando dal bit LSB ( il più a destra ) si formano gruppi di 4 bit ad ogni gruppo si associa la corrispondente cifra o carattere esadecimale 15
La conversione da Esadecimale a Binario Il metodo consiste nell'associare a ciascuna cifra o carattere esadecimale il corrispondente gruppo di quattro bit. 16