Lezione 3 L artimetcia binaria: i numeri relativi i numeri frazionari I numeri relativi Si possono rappresentare i numeri negativi in due modi con modulo e segno in complemento a 2 1
Modulo e segno Si stabilisce il numero di bit usato per rappresentare i numeri si aggiunge un bit a sinistra della sequenza per convenzione se tale bit è 0 il numero si considera positivo se 1 negativo gli altri bit rappresentano il modulo del numero Complemento a 2 stabilito il numero di bit per rappresentare un numero si aggiunge un bit a sinistra di valore 0 se il numero è negativo si permuta ogni 0 con un 1 e viceversa si somma 1 Nota: se il bit più significativo è 1 allora il numero è negativo 2
Numeri relativi La rappresentazione con complemento permette di eseguire somme in modo più semplice la rappresentazione con segno permette di eseguire prodotti in modo più semplice Nota Se si usano n bit per rappresentare un numero (con segno o in complemento) allora ne rimangono n-1 per rappresentare il modulo fare attenzione alla magnitudine del numero negativo in decimale rispetto ai bit rimasti es. con 6 bit si può rappresentare fino a? 32 e non fino a 64 3
Esercizio Quando si vuole aumentare il numero di bit con i quali rappresentare i numeri relativi di n bit se positivi basta aggiungere n bit a 0 a sinistra se negativo con segno basta gestire l ultimo bit di segno se negativo in complemento a 2 si devono aggiungere n bit a 1 (perché si aggiungono pari a 0 e poi vanno invertiti) Esercizio Determinare (senza convertire in decimale) la relazione di ordine (<>=) di due numeri binari relativi. 4
Aritmetica dei numeri relativi Somma in complemento a due: stesso algoritmo per somma di numeri senza segno la somma viene fatta su tutti i bit (anche quelli di segno) si trascura il riporto oltre il bit di segno Condizione di overflow in complemento Se sommando due numeri positivi il bit di segno è a 1 (cioè si è avuto overflow nella somma di n-1 bit e si va a intaccare il bit di segno)(il risultato deve avere segno 0) se sommando due numeri negativi il bit di segno è 0 5
Aritmetica dei numeri relativi Somma con segno: si esegue in modo diverso a seconda del segno e del modulo dei numeri il segno del risultato si calcola separatamente a partire dal confronto dei segni e dei moduli dei due numeri le regole per la somma sono: Segno X Segno Y Confronto Risultato Segno + + X + Y + + - x > Y X - Y + + - X < Y Y - X - - + x > Y X - Y - - + X < Y Y - X + - - X + Y - Condizione di overflow con segno Quando sommando due numeri concordi su n bit risulta che la somma dei moduli di n-1 bit genera un riporto sul bit n 6
Aritmetica dei numeri relativi Sottrazione in complemento a 2: considerando X-Y come X+(-Y) ci si riporta al caso di somma Aritmetica dei numeri relativi Sottrazione con segno: si fa riferimento alla seguente tabella Segno X Segno Y Confronto Risultato Segno + + x > Y X - Y + + + X < Y Y - X - + - X + Y + - + X + Y - - - x > Y X - Y - - - X < Y Y - X + 7
Aritmetica dei numeri relativi Moltiplicazione con complemento: si ricavano i moduli dei due fattori se il numero è negativo si complementa si moltiplicano i moduli si ricava il segno del risultato secondo la: +*+=+ +*-=-*+=- -*-=+ se il segno è negativo si complementa il risultato Aritmetica dei numeri relativi Moltiplicazione con segno: si moltiplicano i moduli dei due fattori si determina il segno del risultato secondo la: +*+=+ +*-=-*+=- -*-=+ se il segno è negativo si assegna 1 al bit di segno, 0 altrimenti 8
I numeri frazionari Si usa il simbolo. per separare la parte frazionaria da quella intera in base 10, il peso associato alle cifre a destra del. vale 10 -i In generale dato un numero in base numerica B: c n c n-1 c 1 c 0. c -1 c -2 c -(m-1) c -m dove la cifra c i assume uno di B possibili valori il valore in base decimale è dato da c n *B n +c n-1 *B n-1 + c 1 *B 1 +c 0 *B 0 + c -1 *B -1 +c -2 *B -2 + +c -m *B -m Rappresentazione binaria dei numeri frazionari Gli unici simboli che un elaboratore tratta sono quelli del sistema binario cioè {0,1} per rappresentare il simbolo. si usa una convenzione: rappresentazione fixed-point (virgola fissa) rappresentazione floating-point (virgola mobile) 9
Virgola fissa Si stabilisce di utilizzare un certo numero di bit per rappresentare la parte intera e il rimanente per la parte frazionaria es. parole di 8 bit di cui 6 per la parte intera e 2 per quella frazionaria Esercizio Quale è l intervallo di numeri rappresentabili in virgola fissa utilizzando m bit per la parte intera e n bit per la parte frazionaria per numeri assoluti per numeri relativi in modulo e segno/complemento a 2 10
Conversione decimale a binario Si considera separtamente la parte intera da quella frazionaria la conversione di quella intera segue l algoritmo già presentato per la parte frazionaria: si moltiplica la parte frazionaria per 2 la parte intera risultante (o 0 o 1) è il bit più significativo si reitera per determinare gli altri bit ci si ferma quando o si ha parte frazionaria nulla o si sono utilizzati tutti i bit a disposizione Numeri Frazionari Relativi Per rappresentare numeri frazionari relativi si può usare la notazione con segno o con complemento per quella con segno una volta determinata la parte intera del numero gli si attribuisce il bit di segno per quella a complemento a due se il nuemro è negativo si esegue la complementazione (dell intero numero) 11
Virgola mobile Si usa la notazione esponenziale:?m * b e dove m è detto mantissa e e esponente la mantissa per convenzione è un numero in [0,1] la base è 2 si rappresenta come: segno esponente modulo della mantissa dove la rappresentazione dell esponente è con segno o con complemento Virgola mobile Valori caratteristici: segno: 1 bit esponente: 7 bit mantissa: 16 bit Totale: 3 byte 12
Esercizio Calcolare l intervallo dei numeri rappresentabili in virgola mobile impiegando 1 bit per l esponente, m bit per l esponente (rappresentato in modulo e segno) e n bit per la mantissa 13