NUMERI NEGATIVI
Numeri interi posi-vi e nega-vi Rappresentazione numeri nega-vi a m bit Segno e valore. Primo bit: il segno (0 +; 1 - ) Rappresento i numeri da - (2 m- 1-1) a (2 m- 1-1). Problema: doppia rappresentazione dello 0. Complemento a due, semplifica le operazioni aritme-che su interi. Con m bit, a disposizione si possono rappresentare numeri da - 2 m- 1 a (2 m- 1-1)
Interi nega-vi, segno e valore Un calcolatore può rappresentare anche interi nega-vi. Non è sufficiente scegliere il bit più a sinistra (MOST SIGNIFICANT BIT) come bit di segno, ciò porterebbe ad una doppia rappresentazione per lo 0: 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
Interi nega-vi, Complemento a 2 Per evitare la doppia rappresentazione si u-lizza la notazione in Complemento a 2. In questo modo con 8 bit si possono rappresentare i numeri interi rela-vi nell intervallo: [- 2 7,2 7-1]=[- 128,+127] In generale su N bit i numeri rappresentabili sono: [- 2 (N- 1),2 N- 1-1]
Complemento a 2 - Regole Il duale di un cifra binaria è l altra cifra rappresentabile. Il duale di 0 è 1 Il duale di 1 è 0 Dato un numero intero nega-vo, la rappresentazione binaria in complemento a due del numero si trova: Calcolando la rappresentazione binaria del numero preso senza segno Sos-tuendo ogni cifra del numero trovato con la cifra duale (complemento a 1) Sommando 1 al numero o]enuto.
Complemento a 2 - Esempio Complemento a 2 di 1001 2 : 1001 = duale à 0110 +1 = 0111 Calcolare la rappresentazione binaria di - 17 10 per un numero di un byte Se il numero fosse posi-vo avrebbe questa rappresentazione 17 10 = 00010001 2 Dato che è nega-vo va complementato a 2-17 10 à converto +17 10 = 00010001 2 à calcolo il duale e sommo 1 = 11101110 + 1 = 11101111 2
Complemento a 2 - Osservazione Come già de]o, un byte, con la rappresentazione in complemento a 2, può rappresentare i numeri da - 128 a +127: Se il MSB è 1 il numero è nega-vo, altrimen- posi-vo
Complemento a 2 - Esercizi Calcolare la rappresentazione binaria dei seguen- numeri, calcolando anche il numero di byte necessari per una corre]a rappresentazione: - 36-200 - 512
Complemento a 2 - Esercizi Calcolare la rappresentazione binaria dei seguen- numeri, calcolando anche il numero di byte necessari per una corre]a rappresentazione: - 36 servono 7 bit (da - 64 a 63) - 200 servono 9 bit (da - 256 a 255) - 512 servono 10 bit (da - 512 a 511)
Complemento a 2 - Esercizi Calcolare la rappresentazione binaria dei seguen- numeri, calcolando anche il numero di byte necessari per una corre]a rappresentazione: - 36à 0100100à 1011011+1à 1011100-200à 011001000à 100110111+1à 100111000-512à 1000000000à 0111111111+1à 1000000000
Esercizi Rappresentare in modulo e segno e complemento a 2 i seguen- numeri nega-vi su 10 bit: - 31-109 - 321
Soluzioni Modulo e segno: 31 1000011111 109 1001101101 321 1101000001 Complemento a 2: 31 (valore assoluto: 0000011111) 1111100001 109 (valore assoluto: 0001101101) 1110010011 321 (valore assoluto: 0101000001) 1010111111
Da complemento a 2 a decimale Come si trasforma in rappresentazione decimale un numero in complemento a 2? In complemento a 2, se il bit di segno è 1, calcolare la rappresentazione binaria del valore assoluto del numero invertendo tug i bit partendo dal primo 1, escluso, che si incontra leggendo la stringa binaria da destra verso sinistra. Calcolare quindi il valore assoluto in notazione decimale. Il risultato sarà il corrispondente numero nega-vo. Se invece il bit di segno è 0, allora il numero è posi-vo e basta calcolarne la rappresentazione decimale senza inver-re i bit.
Esercizio A quali numeri decimali corrispondono i seguen- numeri binari rappresenta- in modulo e segno? e in complemento a 2? 100110 11110 111 0101
Soluzioni 100110 è nega-vo perché il bit del segno vale 1. In modulo e segno il valore assoluto è 000110 = 6, quindi il risultato è - 6 In complemento a 2 il valore assoluto diventa 011010 = 26,quindi il risultato è - 26
11110 è nega-vo perché il bit del segno vale 1. In modulo e segno il valore assoluto è 01110 = 14, quindi il risultato è - 14 In complemento a 2 il valore assoluto diventa 00010 = 2,quindi il risultato è - 2
111 è nega-vo perché il bit del segno vale 1. In modulo e segno il valore assoluto è 011 = 3, quindi il risultato è - 3 In complemento a 2 il valore assoluto diventa 001 = 1,quindi il risultato è - 1
0101 è posi-vo perché il bit del segno vale 0. In modulo e segno il valore assoluto è 0101 = 5, quindi il risultato è 5 In complemento a 2 il risultato è lo stesso o]enuto per modulo e segno, ovvero 5
Rappresentazione dei numeri reali Un calcolatore in realtà rappresenta solo numeri razionali con parte intera e parte frazionaria. Essi approssimano i reali. Due rappresentazioni possibili Virgola fissa: giustapposizione di parte intera e parte frazionaria separate dal punto decimale. Il numero di cifre per la parte intera e frazionaria è fissata a priori dalla posizione del punto decimale. Virgola mobile (floa*ng point) u*lizza la notazione esponenziale r = m b n r è il numero da rappresentare, m è un numero frazionario de]o man-ssa, b è una base e n è un intero con segno (cara]eris-ca)
Rappresentazione dei numeri reali in virgola fissa Si assume che la posizione della virgola sia fissata in un preciso punto all interno della sequenza. Per conver-re da decimale a binario in virgola fissa ( m bit per la parte intera ed n per la parte frazionaria) : la parte intera viene conver-ta in binario a m bit la parte frazionaria viene conver-ta a n bit Esempio: 5 bit per la parte intera e 5 per la parte frazionaria 22.412 parte intera: parte frazionaria: 22 : 2 resto 0 0.412 x 2 = 0.824 0 11 : 2 resto 1 0.824 x 2 = 1.648 1 5 : 2 resto 1 0.648 x 2 = 1.296 1 2 : 2 resto 0 0.296 x 2 = 0.592 0 1: 2 resto 1 (MSB) 0.592 x 2 = 1.184 1 0 => (22) 10 = (10110) 2 (0.412) 10 = 0.01101 (22.412) 10 =1011001101 (non è necessaria la virgola perché
Rappresentazione in virgola mobile rappresentazione dei numeri in formato esponenziale N = ±m * be m = man*ssa si usa una forma normalizzata in cui la man-ssa di un numero in forma esponenziale normalizzata è sempre minore di 1 ed ha la cifra più significa-va diversa da 0. + 314.3425 = + 0.31434125 * 10+3-0.00243= - 0.234 * 10-2 nel sistema binario: - 10101.10110 = - 0.1010110110 * 2+5 normalmente la man-ssa viene rappresentata in modulo e segno e l esponente (o cara]eris-ca) in modulo e segno o complemento a 2. 3 CAMPI: Segno esponente (o caranerisoca) manossa
Esempio virgola mobile Consideriamo una notazione in virgola mobile che rappresen- con 7 bit la cara]eris-ca rappresentata in modulo e segno, con 16 bit la man-ssa e con 1 il segno della man-ssa. - 10101.10110 = - 0.1010110110 * 2+5 segno = 1 esponente = 0000101 man-ssa = 1010110110000000 +0.0010101= + 0.10101 * 2-2 segno = 0 esponente = 1000010 man-ssa = 1010100000000000
Rappresentazione in virgola mobile: esempi
Rappresentazione in virgola mobile: esempi
Rappresentazione in virgola mobile: esempi
Rappresentazione in virgola mobile: esempi
Operazioni tra numeri in Virgola Mobile
Operazioni tra numeri in Virgola Mobile Operazioni di moloplicazione e divisione: Le man-sse vengono mol-plicate o divise Gli esponen- vengo somma- o so]rag Se necessario, la man-ssa viene rinormalizzata e l esponente corre]o Operazioni di somma o sonrazione: L esponente più piccolo viene reso uguale al più grande spostando la man-ssa verso destra del numero di cifre pari alla differenza tra gli esponen- (shiq per o]enere un corre]o incolonnamento) Le man-sse vengono sommate o so]ra]e Se necessario, la man-ssa viene rinormalizzata e l esponente corre]o