prof. Nunzio Brugaletta | BIt WOrld |
Ammesso che si sia scelto di rappresentare numeri binari utilizzando 5 bit, la somma fra due numeri binari si effettua con le regole solite dell'aritmetica:
Nell'operazione mostrata sono evidenziati i riporti che qui, a differenza dei numeri decimali, si presentano quando la somma supera 1: il numero 2 prende il posto del 10 nel sistema decimale. Se c'è un riporto oltre la quinta cifra, si presenta un errore di overflow: il numero è troppo grande per poter essere rappresentato con 5 bit. |
Nella rappresentazione a 5 bit dell'esempio devono essere codificati anche numeri negativi. Il sistema comunemente utilizzato nei computer per rappresentare numeri negativi è quello del complemento a due: il bit più significativo indica il segno (0 per positivo, 1 per negativo), la codifica dei numeri positivi avviene nel modo solito. Per codificare un numero negativo si segue la regola: prima si codifica il numero positivo, si commutano i bit (0 diventa 1 e 1 diventa 0) e, infine si aggiunge 1.
Di tutte le possibili combinazioni che si possono fare con la quantità di bit assegnata, metà rappresentano numeri positivi e metà rappresentano numeri negativi. In coerenza con questa rappresentazione, lo zero è un numero positivo. Per calcolare il margine di rappresentatività (l'intervallo dei valori che possono essere rappresentati) basta calcolare la quinta potenza di 2 (32) e dividere a metà il numero e considerare che il numero zero rientra tra i numeri positivi. In definitiva utilizzando una codifica binaria in complemento a due con 5 bit, si può rappresentare qualsiasi numero intero che soddisfi le diseguaglianze: -16 ≤ x ≤ +15 |
La differenza fra due numeri si ottiene aggiungendo al primo numero, il secondo negativo e trascurando il riporto oltre la quinta cifra:
In questa rappresentazione l'operazione 14 + 2 produce un overflow e -14 -5 un underflow.
Per quanto riguarda le rimanenti due operazioni dell'aritmetica elementare (moltiplicazione e divisione), valgono le solite regole con l'unica avvertenza che, per esempio, il quoziente della divisione fra 5 e 2, essendo un numero non intero, non fa parte dell'insieme dei numeri rappresentabili e ci si limiterebbe a considerare il quoziente intero, cioè, nell'esempio, 2.
Il formato binario con complemento a due viene utilizzato in C/C++ per le variabili di tipo int, la quantità di bit utilizzati, da cui è possibile dedurre facilmente l'insieme degli interi rappresentabili, si può conoscere facendo visualizzare il risultato della funzione sizeof(int).
http://ennebi.solira.org | ennebi@solira.org |