• Modulo e segno • Complemento a 1 (CA1) • Complemento a 2 (CA2)

Download Report

Transcript • Modulo e segno • Complemento a 1 (CA1) • Complemento a 2 (CA2)

INFORMATICA Ottobre 2016 1ASA Docente Salvatore Mosaico
Codifica dei numeri interi con segno in base 2:
Ci siamo occupati fino ad adesso di come il computer (base 2) rappresenta i numeri interi
Occupiamoci ora di rappresentare i numeri interi col segno:
Per rappresentare numeri con segno, occorre utilizzare un bit per definire il segno del
numero
• Modulo e segno
• Complemento a 1 (CA1)
• Complemento a 2 (CA2)
1
INFORMATICA Ottobre 2016 1ASA Docente Salvatore Mosaico
Modulo e segno
SEGNO
MODULO (valore)
il segno si indica nel bit più significativo
1 equivale a 0 equivale a +
il valore con il resto dei bit
rispetto ai numeri interi sacrifichiamo un bit
Essendo il bit più significativo quello del segno per semplicità decidiamo prima il numero dei bit che utilizziamo
esempio con 4 bit
abbiamo 1 bit per il segno e 3 bit per
il modulo
3
con 3 bit rappresentiamo da 0 a 2 -1 ossia da 0 a 7 dunque da -7 a +7
in generale con n bit da –(2n-1-1) a + (2n-1-1)
Valore decimale
Valore binario
0
1
2
3
4
5
6
7
-0
-1
-2
-3
-4
-5
-6
-7
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Come si nota lo zero ha 2 rappresentazioni
Se faccio somma tra positivi e negativi il computer deve ragionare sul segno dunque
occorre un circuito complicato.
2
INFORMATICA Ottobre 2016 1ASA Docente Salvatore Mosaico
Complemento a 1 (CA1)
Anche in questo caso un bit serve per definire il segno del numero ma dal positivo al
negativo si fa una semplice operazione :
si invertono tutti i bit (0 diventa 1 e 1 diventa 0)
esempio con 4 bit
abbiamo 1 bit per il segno e 3 bit per il modulo
con 3 bit rappresentiamo da 0 a 23-1 ossia da 0 a 7 dunque da -7 a +7
n-1
in generale con n bit da –(2
-1) a + (2n-1-1)
Valore decimale
Valore binario
0
1
2
3
4
5
6
7
-0
-1
-2
-3
-4
-5
-6
-7
0000
0001
0010
0011
0100
0101
0110
0111
1111
1110
1101
1100
1011
1010
1001
1000
Come si nota lo zero ha 2 rappresentazioni
Se faccio somma tra positivi e negativi il computer deve ragionare sul segno dunque
occorre un circuito complicato.
3
INFORMATICA Ottobre 2016 1ASA Docente Salvatore Mosaico
Complemento a 2 (CA2)
Anche in questo caso un bit serve per definire il segno del numero ma dal positivo al
negativo si fanno 2 operazioni :
• si invertono tutti i bit (0 diventa 1 e 1 diventa 0)
• si aggiunge 1
• I numeri positivi sono rappresentati (come) in modulo e segno
• I numeri negativi sono rappresentati in complemento a 2 =>la cifra
Più significativa ha sempre valore 1
• Lo zero e rappresentato come numero positivo (con una sequenza
di n zeri)
• Il campo dei numeri rappresentabili varia da -2n-1 a +2n-1-1
Esempio con 4 bit rappresento da
dunque da -8 a +7
dal punto di vista della matematica con n bit per i numeri negativi x si calcola
2n-x
Per sapere il valore a cui corrisponde si considera il bit del segno come -2n
2n-x-2n=-x
4
INFORMATICA Ottobre 2016 1ASA Docente Salvatore Mosaico
Valore decimale
0
1
2
3
4
5
6
7
-1
-2
-3
-4
-5
-6
-7
-8
Valore binario
0000
0001
0010
0011
0100
0101
0110
0111
1110+
1=
------1111
1101+
1=
------1110
1100+
1=
------1101
1011+
1=
------1100
1010+
1=
------1011
1001+
1=
------1010
1000+
1=
------1001
1000 inverto
0111+
1=
------1000
Operazione che si fa per il modulo
x => 2n-x=16-x
16-1=15 = (1111)2
Il valore è 15-16=-1
16-2=14=(1110)2
Il valore è 15-16=-2
16-3=13=(1101)2
Il valore è 13-16=-3
16-4=12=(1100)2
Il valore è 12-16=-4
16-5=11=(1011)2
Il valore è 11-16=-5
16-6=10=(1010)2
Il valore è 10-16=-6
16-7=9=(1001)2
Il valore è 9-16=-7
16-8=8=(1000)2
Il valore è 8-16=-8
Finalmente con questo formato lo zero ha una rappresentazione come gli altri
5
INFORMATICA Ottobre 2016 1ASA Docente Salvatore Mosaico
Addizione e sottrazione
Utilizzando la rappresentazione in complemento a 2 n bit , addizione e sottrazione sono trattate
come
un’unica operazione per FARE A-B si fa
A + (2n-B)
PER AVERE IL VALORE CORRISPONDENTE DUE MODI
• SI SOTTRAE -2n
• SI RIFA IL COMPLEMENTO A 2
1. Si calcola il complemento a 2 di B
2. Si somma A con il complemento a 2 di B
3. Si trascura il bit piu significativo del risultato se si eccede del numero bit utilizzati
ESEMPIO 1 17-5 utilizzo 6 bit
(010001)2-(000101)2 = (17)10-(5)10
Faccio CA2 di 5 (000101)2
111010+
1=
-------------111011
Siccome utilizzo 6 bit potevo convertire in binario 26-5=64-5=59 = (111011)2
010001+
111011=
-------------1001100 (12)
N.B se utilizzo 6 bit eventuali bit eccedenti con li considero 0=> butto 7° bit
6
INFORMATICA Ottobre 2016 1ASA Docente Salvatore Mosaico
ESEMPIO 2
voglio calcolare 5-17 utilizzo 6 bit
(000101)2-(010001)2 = (5)10-(17)10
Faccio CA2 di 17 (010001)2
101110+
1=
-------------101111
Siccome utilizzo 6 bit potevo convertire in binario 26-17=64-17=47 = (101111)2
000101+
101111=
-------------110100
32+16+4 = 52
Il numero è pertanto 52-26=52-64 = (-12)10
Un altro modo per vedere a quale numero negativo (bit più significativo=1) corrisponde è è rifare
complemento a 2:
A = CA2(CA2(A))
CA2(110100) =>
001011 +
000001=
-------------001100
7
(12)10
INFORMATICA Ottobre 2016 1ASA Docente Salvatore Mosaico
ESEMPIO 3
Calcolare 8-4 in binario 5 bit
8 vale in binario 01000
4 vale
00100 per fare il complemento a 2
Inverto 0 con 1
11011
11011+
Aggiungo 1
1=
--------11100
16+8+4 = 28
pertanto 28-25=28-32 = (-4)10
01000+
11100=
(8)
(Complemento a 2 di 4)
4 (il bit eccedente lo butto)
00100
ESEMPIO 4
Calcolare 4-8 in binario 5 bit
4 vale
00100
8 vale in binario 01000 per fare il complemento a 2
Inverto 0 con 1
10111
Aggiungo 1
10111+
1=
--------11000 (16+8)= 24
Pertanto 24-25=24-32 = (-8)10
00100+
11000=
11100
(4)
(Complemento a 2 di 8)
-4 infatti se facciamno il complemento a 2 otteniamo 4
Inverto 0 con 1
Aggiungo 1
00011
00011+
1=
--------00100
Oppure faccio (11100)2=16+8+4=28
pertanto 28-25=28-32 = (-4)10
8