05a NumeriSigned
05a NumeriSigned
F O N DA M E N T I
D I I N F O R M AT I C A
E B A S I D I DAT I
I N G EG N E R I A
GESTIONALE
PROF. ROBERTO GENNA
A.A. 2024-2025
NUMERI "SIGNED"
CODIFICA BINARIA
1
05/03/2025
NUMERI INTERI
• Numeri interi in matematica
– una estensione dei numeri naturali (1,2,3...) che include anche lo
zero e tutti i valori negativi della forma -N, essendo N un naturale
Due rappresentazioni:
• rappresentazione in modulo e segno
– semplice e intuitiva ma inefficiente e complessa nella gestione delle
operazioni → non molto usata in pratica
• rappresentazione in complemento a due
– meno intuitiva, costruita ad hoc, però rende semplice la gestione
delle operazioni → largamente usata
RAPPRESENTAZIONE IN
MODULO E SEGNO
Caratteristiche generali
• usa un bit per rappresentare esplicitamente il segno (convenzione: 0 = +, 1 = -)
• usa i restanti bit disponibili per rappresentare il valore assoluto come numero
binario puro
• Esempio su 8 bit:
-2 → 10000010
+5 → 00000101
Difetti
– il valore 0 ha due distinte rappresentazioni (10000000 = "-0" e 00000000 = "+0")
– non permette di usare direttamente gli algoritmi già noti per eseguire le operazioni
– in particolare, con le usuali regole di calcolo non è vero che X + (-X) = 0
esempio: +5 + 00000101 +
- 5 = 10000101
0 10001010 ???? -10 ????
2
05/03/2025
NOTAZIONE IN
COMPLEMENTO A DUE
Scopo
• poter utilizzare direttamente gli algoritmi dei numeri naturali per
eseguire le operazioni
• rendere verificata la proprietà che X + (-X) = 0 usando le regole
aritmetiche standard anche a prezzo di una notazione più complessa.
La notazione
• rappresentazione non (completamente) posizionale
• il bit più significativo di una stringa di n bit ha peso -2n-1 anziché 2n-1
(gli altri bit mantengono il peso che è loro proprio, come in binario puro)
• esempio:
– utilizzando n=8 bit, il bit 7 ha peso -128 anziché +128
– quindi la stringa 11110001 denota il valore:
-128 + 64 + 32 + 16 + 1 = -15
NOTAZIONE IN
COMPLEMENTO A DUE
Per definizione, il valore di un intero v espresso in questa
notazione è dato da:
3
05/03/2025
NOTAZIONE IN
COMPLEMENTO A DUE
Conseguenze
• MSB = 0 → numero positivo (stesso valore che si avrebbe in binario puro: il
diverso peso del MSB non ha influenza)
• MSB = 1 → numero negativo (il valore rappresentato si ottiene sommando il
contributo negativo del MSB con i contributi positivi degli altri bit)
Esempi
– la stringa 11110001 denota il valore -128 + 64 + 32 + 16 +1 = -15
– La stringa 00001111 = 15
– la stringa 01110001 denota il valore 64 + 32 + 16 + 1 = 113
– la stringa 10000000 denota il valore -128 + 0 = -128
– la stringa 11111111 denota il valore -128 + 64 + 32 + 16 + 8 + 4 + 2 +1= -1
– la stringa 00000000 denota il valore 0
– la stringa 01111111 denota il valore 64 + 32 + 16 + 8 + 4 + 2 + 1 = 127
NOTAZIONE IN
COMPLEMENTO A DUE
Osservazioni e Proprietà
• valori opposti hanno rappresentazioni completamente diverse
• rappresentazioni identiche a meno del MSB denotano valori interi
completamente diversi
• lo zero ha un'unica rappresentazione
4
05/03/2025
NOTAZIONE IN
COMPLEMENTO A DUE
Vantaggi di questa notazione
• le somme algebriche si possono eseguire con le stesse
regole dell'aritmetica binaria, con la seguente convenzione:
– se i due addendi sono discordi, basta ignorare
l’eventuale riporto;
– se i due addendi sono concordi, va comunque ignorato il
riporto, ma il risultato è corretto se e solo se è concorde
(basta verificare solo il MSB)
• nessun circuito particolare è necessario per trattare i
numeri negativi:
– semplicità
– basso costo
NOTAZIONE IN
COMPLEMENTO A DUE
Algoritmo per rappresentare un numero
Se il numero è positivo (o zero), valgono le stesse regole
della conversione in binario puro
Se il numero è negativo:
1. calcolare la rappresentazione in binario puro del valore
assoluto del numero da rappresentare
2. calcolare l’opposto, col seguente algoritmo:
I. invertire tutti i bit della stringa ottenuta (NOT bit a
bit)
II. incrementare di 1 il risultato (somma base-2)
10