Scarica Rappresentazione dei numeri relativi e più Dispense in PDF di Scienze e tecnologie applicate solo su Docsity! Rappresentazione binaria Numeri interi relativi Numeri interi negativi Per rappresentare in binario i numeri negativi è necessario aggiungere alla codifica l’informazione sul segno Viene quindi introdotto un bit che codifica il segno positivo o negativo del valore binario rappresentato. I metodi più importanti per la rappresentazione binaria dei numeri interi relativi sono tre: rappresentazione in modulo e segno rappresentazione in complemento a due Rappresentazione in eccesso 2 n-1 Rappresentazione in modulo e segno Ad esempio, in una codifica binaria su 8 bit, si ha ( - 2 )10 = ( 1 0000010 )2 ( + 5 )10 = ( 0 0000101 )2 ( - 15 )10 = ( 1 0001111 )2 ( + 15 )10 = ( 0 0001111 )2 Rappresentazione in modulo e segno Il range di rappresentazione (intervallo di numeri rappresentabili) di un numero naturale rappresentato in binario su n bit è: [0, 2n - 1] Quindi se n = 4 (una stringa di 4 bit) il range di rappresentazione è [0, 15] Vediamo come cambia il range di rappresentazione con l’introduzione del segno. Rappresentazione in modulo e segno Supponiamo il caso in cui si abbiano 3 bit a disposizione per la codifica. In questo caso si hanno 8 combinazioni: 3 numeri positivi, 3 numeri negativi e due rappresentazioni per lo 0 000 001 010 011 100 101 110 111 +0 +1 +2 +3 -0 -1 -2 -3 Rappresentazione in modulo e segno Esempio Si converta nei corrispondenti numeri relativi decimali le seguenti rappresentazioni in modulo e segno su 5 bit: 10101 1 0101 ( - 5)10 01011 0 1011 ( + 11)10 Rappresentazione in modulo e segno Algoritmo di conversione decimale - binario Per convertire un numero decimale in un numero binario espresso in modulo e segno con n bit occorre: 1. Indicare il bit di segno (MSB) 2. Rappresentare il valore assoluto del numero con n-1 bit Rappresentazione in modulo e segno Esempio Si rappresentino i seguenti numeri relativi decimali in modulo e segno su 5 bit: ( - 3)10 1 0011 10011 ( + 10)10 0 1010 01010 Rappresentazione in modulo e segno Il problema consiste proprio nel fatto che il bit di segno è disgiunto dal resto della rappresentazione e quindi deve essere trattato a parte nei calcoli. Tale rappresentazione non è adatta nelle operazioni aritmetiche eseguite nei calcolatori, alla quale si preferisce la notazione in complemento a due. Rappresentazione in Complemento a 2 Complemento alla base Per una generica base b, il complemento alla base b di un numero m si definisce come dove n è il numero di cifre con cui si rappresenta il numero. Si può dimostrare inoltre che vale la relazione ovvero che il complemento del complemento di un numero è pari al numero stesso. Rappresentazione in complemento a due Si noti che la definizione di complemento a due può essere riscritta come Qualunque sia il valore di n, il numero 2n− 1 è sempre rappresentabile da una sequenza di n bit tutti pari a 1. Sottraendo m da tale valore si ottiene un numero binario pari a quello originario (m)2 ma con 0 e 1 scambiati tra loro (ovvero il complemento a 1 di m). Aggiungendo il valore 1 a questo numero si ottiene il complemento a 2 di m. Rappresentazione in complemento a due Algoritmo di conversione decimale - binario Per convertire un numero decimale in un numero binario espresso in complemento a due con n bit occorre: 1. Rappresentare il valore assoluto in binario su n bit 2. Calcolare il complemento a 1 di tale valore binario e aggiungere il valore 1 (in binario) Rappresentazione in complemento a due Algoritmo di conversione decimale - binario Esempio Si voglia rappresentare il numero m = –32 in complemento a due su 8 bit: Complemento a due
Numero decimale relativo | Modulo e segno | Complemento a 1 | Complemento a 2
+7 O111 0111 0111
+6 O110 OLIO 0110
+5 O101 0101 0101
+4 0100 0100 0100
+3 0011 0011 0011
+2 0010 0010 0010
+1 0001 0001 0001
0 0000 0000 0000
1000 1111
-1 1001 1110 1111
2 1010 1101 1110
-3 1011 1100 1101
A 1100 1011 1100
-5 1101 1010 1011
-6 1110 1001 1010
-T 1lll 1000 1001
-8 - - 1000
Vantaggi del Complemento a due La rappresentazione in complemento a due è la più utilizzata in quanto, pur essendo meno intuitiva della rappresentazione in modulo e segno, presenta i seguenti pregi: si possono usare le regole dell’aritmetica binaria senza segno c’è una sola rappresentazione dello zero la convenzione sul segno è rispettata è verificata la proprietà X + (–X) = 0 scartando però il bit di riporto che si ottiene a sinistra del bit di segno Rappresentazione in Eccesso 2n-1 Rappresentazione in eccesso a 2n-1 Esempio n = 5 bit il valore da aggiungere a ogni numero è 2n−1 = 25−1 = 16 Rappresentazione in eccesso a 2n-1 Algoritmo di conversione binario – decimale si decodifica il numero considerandolo espresso in binario secondo la codifica senza segno, e poi si sottrae il valore 2n−1. Confronto rappresentazioni Numero decimale Modulo e segno Complemento a 2 Eccesso 2n-1 +7 0111 0111 1111 +6 0110 0110 1110 +5 0101 0101 1101 +4 0100 0100 1100 +3 0011 0011 1011 +2 0010 0010 1010 +1 0001 0001 1001 0 0000 1000 0000 ---- 1000 ---- -1 1001 1111 0111 -2 1010 1110 0110 -3 1011 1101 0101 -4 1100 1100 0100 -5 1101 1011 0011 -6 1110 1010 0010 -7 1111 1001 0001 -8 ---- 1000 0000