La Rappresetazioe dei Numeri Sperimetazioi di Fisica I mod. A Lezioe 2 Alberto Garfagii Marco Mazzocco Cizia Sada Dipartimeto di Fisica e Astroomia G. Galilei, Uiversità degli Studi di Padova Lezioe II: Numeri Relativi 1. Itroduzioe Complemeto alla Radice Dato u umero x espresso i base-r co u umero di cifre, si defiisce complemeto alla radice R, il umero: C R (x) = R x Allo stesso modo si defiisce il complemeto alla radice R dimiuita di uo, il umero: C R-1 (x) = (R 1) x = R 1 x = (R x) 1 C R e C R-1 soo legati dalla relazioe: C R-1 (x) = C R (x) 1 C R (x) = C R-1 (x) + 1 Complemeti i Base-10 I base-10, si defiiscoo il complemeto a 10 (C 10, complemeto alla radice 10) e il complemeto a 9 (C 9, complemeto alla radice 10 dimiuita di 1). Cosideriamo il umero 873 10 C 10 (873) = 10 3 873 = 1000 873 = 127 C 9 (873) = (10 3 1) 873 = 999 873 = 126 C 10 (873) = C 9 (873) + 1 = 126 +1 = 127 Altro esempio, cosideriamo il umero 75911 10 C 10 (75911) = 10 5 75911 = 100000 75911 = 24089 C 9 (75911) = (10 5 1) 75911 = 99999 75911 = 24088 Complemeti i altre Basi 1. Complemeto alla radice R dimiuita di uo, C R-1 (x) C F (369 16 ) = FFF 16 369 16 = C96 16 C 9 (873 10 ) = 999 10 873 10 = 126 10 C 7 (1551 8 ) = 7777 8 1551 8 = 6226 8 C 1 (1101101001 2 ) = 1111111111 2 1101101001 2 = 0010010110 2 2. Complemeto alla radice R, C R (x) C 16 (369 16 ) = C F (369 16 ) + 1 16 = C96 16 + 1 16 = C97 16 C 10 (873 10 ) = C 9 (873 10 ) +1 10 = 126 10 +1 10 =127 10 C 8 (1551 8 ) = C 7 (1551 8 ) + 1 8 = 6226 8 + 1 8 = 6227 8 C 2 (1101101001 2 ) = C 1 (1101101001 2 ) + 1 2 = 0010010111 2 La Rappresetazioe dei Numeri Lezioe II: Numeri Relativi 2. La Rappresetazioe del Sego 1
Il Sego Il parametro che cotraddistigue due umero co lo stesso valore assoluto è il sego. Il sego può assumere uicamete due valori: + e Per rappresetare l iformazioe-sego è ecessario e sufficiete u bit, ua cifra che possa assumere valori 0 ed 1. Aggiugiamo ua cifra d, che rappreseta il sego d = (d d -1 d -2 d 2 d 1 d 0 ) R dove d i {0, 1, R-1}, i N e d = 0, se il umero è positivo d = 1, se il umero è egativo I Numeri Relativi i Base-2 Iteri Positivi. Si aggiuge uo zero (0) come cifra più sigificativa (d = 0), metre il resto delle cifre rimae ivariato (d d -1 d 1 d 0 ). Iteri Negativi. Ci soo diverse possibili rappresetazioi: 1. Rappresetazioe Modulo e Sego, 2. Rappresetazioe i Complemeto ad Uo, 3. Rappresetazioe i Complemeto a Due. 4. Rappresetazioe i Eccesso-q La Rappresetazioe dei Numeri Lezioe II: Numeri Relativi 3. Rappresetazioe Modulo e Sego Modulo e Sego (I) U primo approccio al problema è di separare ettamete il modulo (valore assoluto) dell itero rappresetato e di riservare il bit più sigificativo per la rappresetazioe del sego. Tale bit avrà valore 0 per i umeri positivi e 1 per i umeri egativi. 19 10 = 110011 2 Fissato il umero di bit dispoibili per la rappresetazioe di u umero, resta idividuato l itervallo di valori rappresetabili. Modulo e Sego (II) Suppoiamo di descrivere u itero co bit, 1 bit sarà riservato al sego e -1 al suo modulo. L itervallo rappresetabile sarà [ 2-1 + 1, 2-1 1] Vediamo u esempio co = 8, [ 2 7 + 1, 2 7 1] = [ 127, +127] Sistema Biario Siged (8-bit) Usiged (8-bit) 10000000 2 0 10 128 10 10000001 2 1 10 129 10 11111111 2 127 10 255 10 Rappresetazioe ridodate per la preseza di due 0 : +0 e 0. Utilizzata iizialmete ei primi computer (IBM 7090). Oggi usata per il sigificate/matissa ei umeri a virgola mobile. La Rappresetazioe dei Numeri Lezioe II: Numeri Relativi 4. Rappresetazioe Complemeto ad Uo 2
Complemeto ad Uo Ricordiamo la defiizioe di complemeto ad uo (alla radice R dimiuita di uo i base-2) di u umero x rappresetato co bit: C R-1 (x R ) = R R 1 R x R C 1 (x 2 ) = 2 2 1 2 x 2 Per passare da u umero al suo egativo, si utilizza l operazioe di complemeto ad uo. La stessa trasformazioe permette di passare da u umero egativo al corrispodete positivo: C 1 (C 1 (x 2 )) = 2 2 1 2 C 1 (x 2 ) 2 = = 2 2 1 2 (2 2 1 2 x 2 ) = = 2 2 1 2 2 2 + 1 2 + x 2 = = x 2 Regola Pratica Itero Positivo: si aggiuge u bit di sego (0) come cifra più sigificativa. Itero Negativo: si cosidera il complemeto ad uo dell itero positivo. 19 10 = C 1 (010011 2 ) = 111111 2 010011 2 = 101100 2 Per trovare la rappresetazioe i complemeto ad uo, ivertire ad uo ad uo tutti i bit della parola. L itervallo di valori rappresetato è lo stesso della rappresetazioe Modulo-Sego: [ 2-1 + 1, + 2-1 1]. Per esempio, per = 8: [-127 10, +127 10 ]. Numeri Rappresetati i C 1 Sistema Biario Siged (8-bit) Usiged (8-bit) 01111101 2 +125 10 125 10 01111110 2 +126 10 126 10 10000000 2 127 10 128 10 10000001 2 126 10 129 10 10000010 2 125 10 130 10 11111101 2 2 10 253 10 11111110 2 1 10 254 10 11111111 2 0 10 255 10 Alcui Icoveieti La rappresetazioe è ridodate per la scrittura dello 0 : 00 00 2 = +0 10 11 11 2 = 0 10 Il complemeto ad uo permetterebbe u desig più semplice dell hardware (es. i circuiti di addizioe e sottrazioe soo più semplici rispetto alla rappresetazioe modulo e sego), ma la duplice rappresetazioe dello 0 può geerare degli icoveieti elle operazioi. Nelle sottrazioi, come vedremo, possoo ioltre verificarsi degli errori se o si cosidera opportuamete il riporto. CDC 6000 e Uivac 1100 utilizzaroo il complemeto ad uo. Successivamete Itel fu tra i primi ad itegrare il complemeto a due (Itel 8080). La scelta fu quidi seguita ache da AMD ed IBM. Addizioe La Rappresetazioe dei Numeri Cosideriamo la somma di A 1 = +121 10 e A 2 = 55 10 A 1 = 121 10 = 1111001 2 A 1 = +121 10 = 01111001 2 A 2 = 55 10 = 110111 2 + A 2 = +55 10 = 00110111 2 A 2 = 55 10 = C 1 (00110111) 2 = 11001000 2 1 1 1 1 1 01111001 2 + A 1 + A 2 = 01000001 2 = 64 10 + 1 10 = 65 10 11001000 2 = ma A 1 + A 2 = 121 10 55 10 = 66 10!!! occorre sommare l overflow per otteere (1)01000001 2 il risultato corretto: 65 10 + 1 2 = 66 10 Lezioe II: Numeri Relativi 5. Rappresetazioe Complemeto a Due 3
Complemeto a Due I problemi relativi alla doppia rappresetazioe dello 0 e del riporto dell overflow elle sottrazioi soo evitati co la rappresetazioe dei umeri egativi i complemeto a due. C R (x R ) = R R x R C 2 (x 2 ) = 2 2 x 2 = C 1 (x 2 ) + 1 Ci soo due regole pratiche per il calcolo del complemeto a due: 1. Calcolare il complemeto ad 1, C 1 (x 2 ), ivertedo tutti i bit, e poi sommare 1 al risultato; C 2 (0101100 2 ) = 1010011 2 + 1 2 = 1010100 2 2. Partedo da destra, copiare tutti i bit fio al primo 1 e poi ivertire tutti i bit a siistra del primo 1 C 2 (0101100 2 ) = 1010100 2 Numeri Rappresetati i C 2 Sistema Biario Siged (8-bit) Usiged (8-bit) 00000000 2 0 10 0 10 01111101 2 +125 10 125 10 01111110 2 +126 10 126 10 10000000 2 128 10 128 10 10000001 2 127 10 129 10 10000010 2 126 10 130 10 11111101 2 3 10 253 10 11111110 2 2 10 254 10 11111111 2 1 10 255 10 Cofroto C 1 e C 2 Sistema Biario C 1 (8-bit) C 2 (8-bit) 00000001 2 +1 10 +1 10 01111101 2 +125 10 +125 10 01111110 2 +126 10 +126 10 01111111 2 +127 10 +127 10 10000000 2 127 10 128 10 10000001 2 126 10 127 10 10000010 2 125 10 126 10 11111110 2 2 10 3 10 11111110 2 1 10 2 10 11111111 2 0 10 1 10 Proprietà i C 2 E il metodo più diffuso ella rappresetazioe dei umeri egativi i iformatica. Si utilizza u uico circuito per addizioe e sottrazioe, permettedo tecologie più semplici e maggior precisioe. Il valore assoluto di u umero egativo si ottiee ivertedo il valore dei sigoli bit e sommado 1 al umero biario risultate (uica eccezioe 10000000 2 = 128 10 ) 5 10 = 11111011 2 C 2 (11111011 2 ) = C 1 (11111011 2 ) + 1 2 = = 00000100 2 + 1 2 = 00000101 2 = 4 10 * 1 10 + 1 10 = 5 10 L itervallo dei umeri rappresetati è [ 2-1, + 2-1 1], per esempio per ua rappresetazioe i = 8 bit: [ 128,127]. C è u uica rappresetazioe dello 0. Addizioe La Rappresetazioe dei Numeri Sommado due umeri di sego diverso, il sego del risultato è determiato automaticamete. 1 1 1 1 1 1 1 1 0000 1111 2 + (+15 10 ) 1111 1011 2 = ( 5 10 ) 0000 1010 2 (10 10 ) +127 0 128 Sommado due umeri dello stesso sego, occorre determiare se il risultato è fuori itervallo. 0 1 1 0100 1011 2 + (+75 10 ) 0100 0010 2 = (+66 10 ) 1000 1101 2 ( 115 10 ) ( 141 10 ) Se gli ultimi due riporti soo diversi, si è verificata ua codizioe di overflow! Lezioe II: Numeri Relativi 6. Rappresetazioe i Eccesso-q 4
Eccesso-q Questa otazioe, detta ache biased, si realizza aggiugedo u valore fissato q (detto eccesso, offset) ai umeri della rappresetazioe. Dato il umero di bit,, della rappresetazioe l eccesso è (geeralmete) q = 2-1 1 Lo 0 è rappresetato dal umero q, metre ua combiazioe di bit tutti ulli rappreseta il umero q. Itervallo: [ 2-1 +1, 2-1 ] Tale otazioe è utilizzata per idicare l espoete ei umeri i virgola mobile. Per esempio, secodo lo stadard IEEE- P754, ei umeri i precisioe sigola (32-bit) l espoete utilizza 8 bit ed è rappresetato i eccesso-127. Nei umeri i precisioe doppia (64-bit), soo riservati 11 bit all espoete rappresetato i eccesso-1023. Numeri Rappresetati i Eccesso-127 Sistema Biario Offset-127 (8-bit) Usiged (8-bit) 00000000 2 127 10 0 10 00000001 2 126 10 1 10 01111101 2 2 10 125 10 01111110 2 1 10 126 10 01111111 2 0 10 127 10 10000000 2 1 10 128 10 10000001 2 2 10 129 10 10000010 2 3 10 130 10 11111110 2 127 10 254 10 11111111 2 128 10 255 10 Cofroto tra le Rappresetazioi (I) Cofroto tra le Rappresetazioi (II) 5