Operazioni tra numeri interi con e senza segno

Operazioni tra numeri interi con e senza segno
Esercizio 1
Sommare e sottrarre su 4 bit i numeri in Binario puro 1001 e 1000.
Somma
1001 +
1000 =
------10001
Questa somma non è possibile su 4 bit in quanto si è verificato un overflow: il risultato non è
rappresentabile su 4 bit in quanto si è verificato un riporto sul MSB.
Sottrazione
1001 1000 =
-----0001
--> 1001 - 1000 = 0001
Esercizio 2
Sommare e sottrarre su 4 bit i numeri in Complemento a 1 "1000" e "1001".
Somma
1000 +
1001 =
------10001
Questa somma non è possibile su 4 bit in quanto si è verificato un overflow: il segno del
risultato (1-0-001) è diverso dai due segni degli addendi (1-000, 1-001).
Sottrazione
Si cambia di segno il sottraendo (complementando a 1): 1001 --> 0110
Ora si può sommare secondo le regole solite.. Essendo il modulo del sottraendo maggiore
di quello del minuendo, l'operazione tra i moduli è la seguente:
1000 +
0110 =
-----1110
Il segno è quello del numero che "prevale", cioè di 1001 (ossia il risultato sarà un numero
negativo).
Quindi: 1000 - 1001 = 1000 + 0110 = 1110 (= -1 decimale).
Esercizio 3
Sommare e sottrarre su 4 bit i numeri in Modulo e Segno 1000 e 1001.
Somma
In questo caso (segni concordi) la somma si riduce ad una somma dei moduli.
000 +
001 =
----001
Questa somma è possibile su 4 bit in quanto non si è verificato un overflow (il risultato è 001
e non, ad esempio, 1-001): il segno del risultato è quindi uguale a quello degli operandi di
partenza (0).
Sottrazione
Si cambia di segno il sottraendo: 1001 --> 0001
Ora si può sommare secondo le regole solite.. Essendo il modulo del sottraendo maggiore
di quello del minuendo, l'operazione tra i moduli è la seguente:
1000 +
0001 =
-----1001
Il segno è quello del numero che "prevale", cioè di 1001 (ossia il risultato sarà un numero
negativo).
Quindi: 1000 - 1001 = 1000 + 0001 = 1001 (= -1 decimale).
Esercizio 4
Sommare e sottrarre su 4 bit i numeri in Complemento a 2 1000 e 1001.
Somma
1001 +
1000 =
------10001
Questa somma non è possibile su 4 bit in quanto si è verificato un overflow: il segno del
risultato (1-0-001) è diverso dai due segni degli addendi (1-001, 1-000).
Sottrazione
Si cambia di segno il sottraendo (complementandolo a 2). 1001 --> 0111
Ora si può sommare secondo le regole solite.
1000 +
0111 =
------1111
Non ci si deve più preoccupare del segno del risultato: la somma bit a bit restituisce già il
numero corretto.
Quindi: 1000 - 1001 = 1111 (= -1 decimale).
Esercizio 5
Sommare e sottrarre i seguenti numeri supponendoli scritti in Binario Puro, Modulo e Segno e
Complemento a 2, tutti su 8 bit.
NUMERI
BINARIO PURO
MODULO E SEGNO
1° addendo 2° addendo
Somma
Sottrazione
Somma
Sottrazione Somma
01000110
10001100
11010010
NON ESISTE
00111010
01010010
11010010
10011000
11101111
OVERFLOW
NON ESISTE
OVERFLOW 01010111
00000111
10001000
00001110
10010110
01111010
00000110
10010110
10010110
00010111
11111111
OVERFLOW
NON ESISTE
11101000
OVERFLOW 00010110
00000011
01111111
10000010
NON ESISTE
10000010
10111100
OVERFLOW
10001101
11001100
OVERFLOW
NON ESISTE
11011001
00111111
OVERFLOW
Esercizio 6
Si incrementino di una unità i seguenti numeri supponendoli scritti in Binario Puro, Modulo e
Segno e Complemento a 2, tutti su 8 bit.
NUMERO
B.P.
M.S.
CA2
COMPLEME
01111111
10000000
OVERFLOW
OVERFLOW
10000000
10000001
00000001
10000001
11111001
11111010
11111010
11111010
11100101
11100110
11100110
11100110
00011000
00011001
00011001
00011001
11111111
OVERFLOW
11111110
00000000
00000000
00000001
00000001
00000001
Esercizio 7
Moltiplicare e dividere il numero binario su 8 bit 00001100 per 2^3.
La moltiplicazione per una potenza di 2 corrisponde ad uno shift del numero a sinistra se
l'esponente è positivo, uno shift a destra se l'esponente è negativo.
Moltiplicazione: si "spostano" del cifre del numero binario di 3 posizioni a
sinistra (moltiplicazione per 2^3)
00001100 * 1000 = 01100000
Divisione: si "spostano" del cifre del numero binario di 3 posizioni a destra
(moltiplicazione per 2^-3)
00001100 / 1000 = 00001100 * 0.001 = 00000001 (con troncamento)
Esercizio 8
Moltiplicare e dividere i seguenti numeri binari su 8 bit per la potenza di due indicata.
NUMERO
MOLTIPLICAZIONE
DIVISIONE
Numero
Moltiplicatore
Risultato intero Troncamento
00100111
22
10011100
00001001
SI: .11
10001100
24
OVERFLOW
00001000
SI: .1100
00001000
21
00010000
00000100
00100100
25
OVERFLOW
00000001
SI: .00100
10000001
23
OVERFLOW
00010000
SI: .001