21
Rappresentazione interi con e senza segno ([PH] par. 2.4) Mercoledì 27 settembre 2017

Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

Rappresentazione interi con e senza segno

([PH] par. 2.4)

Mercoledì 27 settembre 2017

Page 2: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

Punto della situazione

• Abbiamo visto:

– la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2, 8, 10, 16 e conversioni

– Codifica simboli non numerici (ASCII)

• Oggi vedremo le rappresentazioni per numeri con il segno; in particolare la rappresentazione modulo e segno e la rappresentazione in complemento a 2.

Page 3: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,
Page 4: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

Rappresentazione in complemento a 2: vantaggi

• Una sola rappresentazione per lo zero

• Intervallo di rappresentazione: [-2n-1 , 2n-1 – 1 ]

per es. con 4 bit [-8, +7] anzichè [-7, +7]

• L’aritmetica è più semplice

• Cambiare di segno/ ottenere l’opposto è ancora semplice.

• Un’osservazione che tornerà utile….

Page 5: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

Somma di potenze consecutive di 2

26+ 25+ 24+ 23+ 22 = 26+ 25+ 24+ 23+ 22 + 21 + 20

– ( 21 + 20 )== (27 – 1) – (22 – 1) = 27 – 22

hkk

hi

i 222 1

122 1

0

kk

i

i

26+ 25+ 24+ 23+ 22 + 21 + 20 = 27 - 1

1

0

22

kk

i

iInoltre

Page 6: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

Complemento a Due

• Differenza con il sistema posizionale: il peso del bit più a sinistra/più significativo è negativo

• Il valore di bn-1bn-2…b0 è dato dalla relazione

2

0

1

1 22n

i

i

i

n

n bbN

• 00010010 = + 24+ 2= +18

• 10010010 = −27+ 24+ 2= −128+18 = −110

• 111111 = −25+ 24+ 23+ 22+ 21+ 20= − 25 + 25−1= −1

• 111101=−25+ 24+ 23+ 22+ 20= − 32 + 29 = −3

Page 7: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

Positivi e negativi

EsercizioDimostrare che nella rappresentazione bn-1 bn-2 … b0 in complemento a due dell’intero N:• Se bn-1 = 0 allora N ≥ 0• Se bn-1 = 1 allora N < 0

Osservazione: Il bit più a sinistra/più significativo ci indica il segno:

0 significa positivo1 significa negativo

Page 8: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

Esempio con n=4 bit

0 000 = 0

0 001 = +1

0 010 = +2

0 011 = +3

0 100 = +4

0 101 = +5

0 110 = +6

0 111 = +7

1 000 = −8

1 001 = −8 +1= −7

1 010 = −8+2 = −6

1 011 = −8+3 = −5

1 100 = −8+4 = −4

1 101 = −8+5 = −3

1 110 = −8+6 = −2

1 111 = −8+7 = −1Massimo=+7

minimo = −8

Intervallo di rappresentazione con 4 bit: [− 8, +7]

Page 9: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

Esempio con n=32 bit

0 0…00 = 0

0 0…01 = 1

0 0…10 = 2

0 0…11 = 3

….

0 1…10 = 231 - 2

0 1 …11 = 231 - 1

1 0…00 = - 231

1 0…01 = -231 +1

1 0…10 = -231 +2

1 0…11 = -231 +3

………..

1 1…10 = -231 +231 – 2=-2

1 1…11 = -231 +231 – 1=-1Massimo= 231 - 1

minimo=- 231

Intervallo di rappresentazione con 32 bit: [- 231, 231 -1]

Page 10: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

Massimo e minimo

• 8 bit in Complemento a 2

+127 = 01111111 = 27 -1

-128 = 10000000 = -27

• 16 bit in Complemento a 2

+32767 = 011111111 11111111 = 215 - 1

-32768 = 100000000 00000000 = -215

• 32 bit in Complemento a 2

+ 2 147 483 647 = 0111……..111 = 231 - 1

- 2 147 483 648 = 1000………000 = -231

Page 11: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

Intervallo di rappresentabilità

Numeri rappresentabili con n bit in Complemento a 2

minimo: 1000………000 = -2n-1

Massimo: 0111……..111 = 2n-1 – 1

[-2n-1 , 2n-1 – 1 ]

Page 12: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

Vantaggi

• Una sola rappresentazione per lo zero

• L’aritmetica è più semplice

• Cambiare di segno/ ottenere l’opposto è ancora semplice.

– La rappresentazione in complemento a 2 di un intero negativo si può ottenere trovando la rappresentazione in complemento a 2 del suovalore assoluto e calcolando poi l’opposto.

Page 13: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

Cambiamento di segnoCambiare di segno è semplice.Algoritmo 1:

• Si esegue il complemento bit a bit o negazione (sitrasforma ogni 1 in 0 e viceversa)

• Si somma 1

Esempio:Con 6 bit: 310 = 000011

Si esegue il complemento bit a bit 111100+Si somma +1 1=

111101111101= −25+ 24+ 23+ 22+ 20= − 32 + 29 = − 310

Sarà un caso?

Page 14: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

Non è un casoCambiare di segno è semplice:• Si esegue il complemento bit a bit (si trasforma ogni 1 in 0 e viceversa)

• Si somma 1

Perchè funziona?

12)1(2)1(

)212(2)1(

2222

22

2

0

1

1

2

0

2

0

1

1

2

0

1

1

11

2

0

1

1

n

i

i

i

n

n

n

i

n

i

i

iin

n

n

i

i

in

n

nn

n

i

i

i

n

n

bb

bb

bb

bbN

2

0

1

1 22n

i

i

i

n

n bbN

1−b è il negato di b

Page 15: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

Cambiamento di segno (2)

Algoritmo 2:• Partendo da destra si lasciano invariati tutti i bit

fino al primo 1 compreso, poi si invertono irimanenti

Rivediamo:

1210 = 00001100 c’è un modo diretto?11110011+

1=11110100

Page 16: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,
Page 17: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

Il caso dello 0

Proviamo a cambiare di segno lo 0 rappresentato con n=8 bit con l’ Algoritmo 1.

0 = 00000000Negazione: 11111111+Somma di 1: 1 =Risultato: 1 00000000

Non considerando l’ultimo riporto (il nono bit 1), si ha:

- 0 = 0

Page 18: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

Proviamo a cambiare di segno il minimo rappresentato con n=8 bit con l’ Algoritmo 1.

-128 = - 27 = 10000000Negazione: 01111111+Somma di 1: 1 =Risultato: 10000000 = -128 !!!

In realtà sappiamo che con 8 bit l’intervallo di rappresentazione è [- 27, 27 -1] = [-128, 127]128 non appartiene all’intervallo di rappresentabilità: c’è overflow!

Il caso del minimo

Page 19: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

Estensione del segno• Per i numeri positivi si aggiungono 0 nella parte più

significativa+18 = 00010010 = 24+ 2= 18

+18 = 00000000 00010010 = 24+ 2= 18

• Per i numeri negativi si aggiungono 1 nella parte piùsignificativa-18 = 101110= -25+ 23+ 22+2= -32 +14=-18

-18 = 1111 101110 = -29+(28 + … + 25) + 23+ 22+2 =

= -29+(29 - 25) + 23+ 22+2 = -25+ 23+ 22+2= -18

• Regola dell’estensione del segno: Si completa la rappresentazione riportando a sinistra il bit piùsignificativo.

Page 20: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

• Esercizio 15)

Dimostrare che nella rappresentazione in complemento a due, l’intero rappresentato da 1bk-1 … b0 è uguale all’intero rappresentato da 11…1bk-1 … b0 , qualunque sia il numero h≥ 2di 1 che precedono bk-1, e per ogni valore binario di bk-1 ,… , b0.

Page 21: Rappresentazione interi con e senza segno - UNISA · 2017. 9. 27. · –la rappresentazione dei numeri positivi con e senza virgola nel sistema posizionale; in particolare basi 2,

Esercizio

• Scrivete la vostra matricola:

051210 b3b2b1b0

• Convertite b3b2b1b0 in

1. base 2, 8, 16

2. in complemento a 2 e calcolatene l’opposto

Continuate finché ….. non l’avete imparata!