2.3 - Rappresentazione in complemento a 1
[I1]
[E1]
[F1]
[ES1]
La rappresentazione in complemento a 1 è una rappresentazione interessante perché getta le basi per comprendere quella in complemento a 2. Essa si basa sul tentativo di voler rappresentare i numeri negativi e positivi senza scindere l'informazione del segno dal valore stesso, come invece avviene in quella modulo e segno dove il bit più significativo rappresenta solo il segno del valore e non porta informazione numerica. Ciò si può ottenere semplicemente decidendo di rappresentare i valori positivi fino a +127 e negativi fino a -127 considerando il valore negativo come complemento di quello positivo. Per esempio il valore (00100111)2 = (+39)10 viene rappresentato in negativo come (11011000)2 = (-39)10 semplicemente complementando bit a bit il valore positivo equivalente. Si nota subito come tutti i valori negativi in complemento a 1 hanno il bit più significativo a 1, ma l'informazione è contenuta nel valore stesso e non scorporata da esso, ciò permette di sommare valori positivi e negativi tra di loro direttamente. Inoltre va notato come il valore -1 in modulo e segno si scriverebbe 10000001, mentre in complemento a 1 è 11111110 quindi le due rappresentazioni sono differenti. Rimangono però altri due aspetti che sono poco agevoli e a sfavore della rappresentazione in complemento a 1, il primo è che il valore 0 continua ad essere doppio, infatti 00000000 e 11111111 rappresentano rispettivamente +0 e -0 in decimale, ma ciò non è congruo con i numeri in base dieci dove lo 0 è unico e non ha segno, il secondo si presenta nella somma di due valori di segno opposto perché si dovrebbe tenere conto della doppia rappresentazione dello 0 come segue:
|
1 |
|
1 |
|
|
|
|
|
|
0 |
1 |
0 |
1 |
0 |
+ |
|
(+10)10 |
|
1 |
1 |
0 |
1 |
1 |
= |
|
(-4)10 |
1 |
0 |
0 |
1 |
0 |
1 |
|
|
|
à |
|
|
|
|
1 |
|
|
|
|
0 |
0 |
1 |
1 |
0 |
|
|
(+6)10 |
L'operazione che si è eseguita, ha richiesto di sommare al risultato della somma diretta di un valore positivo e negativo in complemento a 1. Questa operazione è poco agevole e serve a tenere conto che la rappresentazione dello 0 è doppia, mentre per allineare il risultato con il valore atteso decimale bisogna sommare ancora 1 come correzione.
21/53
|