61
1 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà di memorizzazione Numeri romani: I, II, III, IV, V, VI, VII, VIII, IX, X, … 1997 MCMXCVII problemi di utilizzo nelle operazioni e nella rappresentazione di numeri “grandi”

52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

Embed Size (px)

Citation preview

Page 1: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

1Università di Pavia - corso di Fondamenti di Informatica

Sistemi di numerazione

• La rappresentazione più semplice:

| | | | ….

poco rappresentativa; difficoltà di memorizzazione

• Numeri romani: I, II, III, IV, V, VI, VII, VIII, IX, X, …

1997 MCMXCVII

problemi di utilizzo nelle operazioni e nella rappresentazione

di numeri “grandi”

Page 2: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

2Università di Pavia - corso di Fondamenti di Informatica

Sistemi di numerazione

• Numerazione decimale: base=10

7582

migliaia centinaia decine unità

103 102 101 100

7 103 + 5 102 + 8 101 + 2 100

• Conteggio: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 0 con riporto

Page 3: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

3Università di Pavia - corso di Fondamenti di Informatica

Rappresentazione di numeri interi

• Si sceglie una base .

• Si scelgono simboli che rappresentano i numeri da 0 a -1 (cifre).

• I numeri sono rappresentati dai coefficienti del polinomio per le

potenze della base

• Indichiamo la base del sistema di numerazione con il pedice

N= As As-1 … A1 A0 0 Ai

Valore N = As s + As-1 s-1 + … + A1 1 + A0 0

• La rappresentazione è posizionale poiché il peso associato alla

generica cifra Ai dipende dalla posizione di Ai

Page 4: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

4Università di Pavia - corso di Fondamenti di Informatica

Sistemi di numerazione

Numerazione binaria: base=2

• Conteggio: 0, 1 0 riporto

10, 11 0 riporto

100, …

Corrispondenza binario-decimale

Binario Decimale

0 0

1 1

10 2

11 3

100 4

101 5

110 6

111 7

1000 8

1001 9

Page 5: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

5Università di Pavia - corso di Fondamenti di Informatica

Numerazione binaria: base 2. Simboli usati: 0, 1

1 0 1 0 1 1 1 0 1 0 2

28=256 26=64 24=16 22=4 20=1

29=512 27=128 25=32 23=8 21=2

1 29 + 0 28 + 1 27 + 0 26 + 1 25 + 1 24 + 1 23 + 0 22 + 1 21 + 0 20 =

= 512+128+32+16+8+2=698 10

Sistemi di numerazione

Page 6: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

6Università di Pavia - corso di Fondamenti di Informatica

Sistemi di numerazione

Numerazione ottale: base 8

Simboli usati: 0, 1, 2, 3, 4, 5, 6, 7

Esempio:

3 7 1 5 8

3 83 + 7 82 + 1 81 + 5 80 =

= 3512 + 764 + 8 + 5 =

= 1536+448+8+5 = 1997 10

Page 7: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

7Università di Pavia - corso di Fondamenti di Informatica

Sistemi di numerazione

Numerazione esadecimale : base 16

Simboli usati: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Esempio:

7 C D 16

7 162 + 12 161 + 13 160 =

= 7256 + 1216 + 13 =

= 1792+192+13 = 1997 10

Page 8: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

8Università di Pavia - corso di Fondamenti di Informatica

Sistemi di numerazione: esempi

• Base 2

1 0 1 0 2 = 23 + 2 = 10 10

1 1 0 0 1 0 0 2 = 26 + 25 + 22 = 100 10

1 1 1 1 1 0 1 0 0 0 2 = 29 + 28 + 27 + 26 + 25 + 23 = 1000 10

• Base 8

1 2 8 = 8 + 2 = 10

1 4 4 8 = 82 + 4 8 + 4 = 100

1 7 5 0 8 = 83 + 7 82 + 5 8 = 512 + 448 + 40 = 1000 10

Page 9: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

9Università di Pavia - corso di Fondamenti di Informatica

Sistemi di numerazione: esempi

• Base 16

A 16 = 10 10

6 4 16 = 6 16 + 4 = 100 10

3 E 8 16 = 3 162 + 14 16 + 8 = 768 + 224 + 8 = 1000 10

F 16 = 15 10

5 E 16 = 5 16 + 14 = 94 10

7 1 B 16 = 7 162 + 1 16 + 11 = 1792 + 16 + 11 = 1819 10

Page 10: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

10Università di Pavia - corso di Fondamenti di Informatica

Sistemi di numerazione: esempi

= 10, N = 14320 10

N = 1 104 + 4 103 + 3 102 + 2 10 + 0 1

= 2, N = 110100 2

N = 1 25 + 1 24 + 0 23 + 1 22 + 0 2 + 0 1 = 32 + 16 + 4 = 52 10

= 8, N = 3216 8

N = 3 83 + 2 82 + 1 8 + 6 = 1536 + 128 + 8 + 6 = 1678 10

= 16, N = AB9E 16

N = 10 163 + 11 162 + 9 16 + 15 = 40960 + 2816 + 144 + 15 = 43935 10

Page 11: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

11Università di Pavia - corso di Fondamenti di Informatica

Conversione di base

Per la parte intera:

• Dato un numero in una base A, si vuole rappresentarlo in base B, cioè:

N A = N B = x0 + B (x1 + B (…B xs)…)

• Se dividiamo N A per la nuova base B, otteniamo un quoziente N1 ed un resto R.

Uguagliando:

N A = R + B N1 = x0 + B (x1 + B (x2 + … ) )

da cui:

x0 = R

(x1 + B (x2 + … ) ) = N1

• Iterando il procedimento con N1 al posto di N A, si ottengono tutti i coefficienti del

polinomio nelle potenze di B, cioè la codifica di N A nella nuova base, e quindi N B

Page 12: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

12Università di Pavia - corso di Fondamenti di Informatica

Conversione di base

1258 0

629 1

314 0

157 1

78 0

39 1

19 1

9 1

4 0

2 0

1 1

0

1258 10 = 10011101010 2

1258 2

157 5

19 3

2 2

0

1258 10 = 2352 8

1258 10

78 14

4 4

0

1258 10 = 4EA 16

Page 13: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

13Università di Pavia - corso di Fondamenti di Informatica

Conversione di base: numeri frazionari

N=0 , A-1 A-2 A-3 A-4 A-5

Valore N = A-1 -1 + A-2 -2 + A-3 -3 + A-4 -4 + A-5 -5

In generale:

Q=As As-1 … A1 A0 , A-1 A-2 A-3 … A-R 0 Ai

Valore Q = As s + As-1 s-1 + … + A1 1 + A0 0 +

+ A-1 -1 + A-2 -2 + A-3 -3 + … + A-R -R

Esempi: = 10, N = 325,23 10

N = 3 102 + 2 101 + 5 + 2 10-1 + 3 10-2

= 2, N = 101,01 2

N = 1 22 + 1 + 1 2-2 = 4 + 1 + 0,25 = 5,25 10

Page 14: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

14Università di Pavia - corso di Fondamenti di Informatica

Conversione di base

Per la parte frazionaria:

• Dato un numero in una base A, si vuole rappresentarlo in base B, cioè:

FA = FB = B-1(x-1 + B-1(x-2 + B-1(…B-1x-r)…))

• Se moltiplichiamo F A per la nuova base B, otteniamo una parte intera I ed una parte

frazionaria F1. Uguagliando:

FA B = I + F1

da cui: x-1 = I

B-1(x-2 + B-1(…B-1x-r)…) = F1

• Iterando il procedimento con F1 al posto di FA, si ottengono i coefficienti del

polinomio nelle potenze di B, cioè la codifica di FA nella nuova base, e quindi FB. Il

procedimento termina quando Fl = 0, oppure quando si è raggiunta la precisione

desiderata (errore < B-r se ci si ferma al termine x-r)

Page 15: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

15Università di Pavia - corso di Fondamenti di Informatica

Conversione di base: numeri frazionari

0.59375

1.18750 1

0.37500 0

0.75000 0

1.50000 1

1.00000 1

0.59375 10= 0.10011 2

32

1

16

1

2

1

0.59375

4.75000 4

6.00000 6

0.59375 10= 0.46 8

0.59375

9.50000 9

8.00000 8

0.59375 10= 0.98 16

Page 16: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

16Università di Pavia - corso di Fondamenti di Informatica

CONVERTIRE IL NUMERO 58,0710 IN BINARIO

PARTE INTERA PARTE FRAZIONARIA

58 = 28x2+0 X0=0 0,07x2=0.14 X-1=0

29 = 14x2+1 X1=1 0,14x2=0.28 X-2=0

14 = 7 x2+0 X2=0 0,28x2=0.56 X-3=0

7 = 3 x2+1 X3=1 0,56x2=1.12 X-4=1

3 = 1 x2+1 X4=1 0,12x2=0.24 X-5=0

1 = 0 x2+1 X5=1 0,24x2=0.48 X-6=0

0,48x2=0.96 X-7=0

0,96x2=1.92 X-8=1

0,92x2=1.84 X-9=1

(TRONCHIAMO QUI)

IL NUMERO IN BINARIO È: 111010,000100011

Page 17: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

17Università di Pavia - corso di Fondamenti di Informatica

CONVERTIRE IL NUMERO 4287,31210 IN ESADECIMALE

PARTE INTERA: PARTE FRAZIONARIA

4287:16=267 RESTO=15F 0,321x16=4,992 4267 :16= 16 RESTO=11B 0,992x16=15,872 F16 :16= 1 RESTO= 00 0,872x16=13,952 D1 :16= 0 RESTO= 11 0,952x16=15,232 F

4287,31210 ~ 10BF,4FDF…16

1 X 163 = 409611 X 161 = 17615 X 160 = 15 4 X 16-1 = 0,25015 X 16-2 = 0,04859. . . . . . . . . . . . . . . . . . . . . . ._________________________________

= 4287, . . . .

Page 18: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

18Università di Pavia - corso di Fondamenti di Informatica

Conversione di un numero dalla base β1 alla base β2 quando β2= β1

k dove K è un intero ≥2

ESEMPIO: β1=2, β2=8=23

N2= dk dk-1 . . . d5 d4 d3 d2 d1 d0

= dk2k+….+d525+d424+d323+d222+d121+d020

= ….+(d522+d421+d320)23+(d222+d121+d020)20

= ch23*h+…. +c223*2+c123*1+c023*0 con 0 ci 7

= ch8h+…. +c282+c181+c080

N8= ch ch-1 . . . c5 c4 c3 c2 c1 c0

Quindi se una base è potenza dell’altra, con esponente K, la conversione è molto semplice: basta sostituire ogni gruppo di K cifre del numero in una base (β1) con la cifra corrispondente nell’altra base (β2) o viceversa.

N.B. se il numero di bit non è multiplo di K aggiungere gli 0 necessari a renderlo tale in posizioni che non modifichino il significato del numero.

Page 19: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

19Università di Pavia - corso di Fondamenti di Informatica

Conversioni fra basi diverse

Esempio: 16 2

0 0000 8 1000

1 0001 9 1001

2 0010 A 1010

3 0011 B 1011

4 0100 C 1100

5 0101 D 1101

6 0110 E 1110

7 0111 F 1111

Page 20: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

20Università di Pavia - corso di Fondamenti di Informatica

Conversioni fra basi diverse: esempi

• 1 0 0 1 1 1 0 1 0 1 0 2 125810

1 0 | 0 1 1 | 1 0 1 | 0 1 0 2 23528

1 0 0 | 1 1 1 0 | 1 0 1 0 2 4EA16

• 0 . 1 0 0 1 1 0 0 0 0 0 2 0.5937510

0 . 1 0 0 | 1 1 0 | 0 0 0 | 0 2 0.468

0 . 1 0 0 1 | 1 0 0 0 | 0 0 2 0.9816

Si può fare anche il passaggio inverso:

• 1F516 1 | 1 1 1 1 | 0 1 0 1 2

• 75268 1 1 1 | 1 0 1 | 0 1 0 | 1 1 0 2

• 752616 1 1 1 | 0 1 0 1 | 0 0 1 0 | 0 1 1 0 2

Page 21: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

21Università di Pavia - corso di Fondamenti di Informatica

Conversione di base: numeri frazionari

0.1

0.2 0

0.4 0

0.8 0

1.6 1

1.2 1

0.4 0

0.8 0

….

210 00110.01.0

0.1

0.8 0

6.4 6

3.2 3

1.6 1

4.8 4

….

810 63140.01.0

0.1

1.6 1

9.6 9

….

1610 91.01.0

Può accadere che a un numero decimale non periodico corrisponda un numero binario, ottale o esadecimale periodico

Page 22: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

22Università di Pavia - corso di Fondamenti di Informatica

Conversione da base 8 a base 16

110 001 101 010 000 100 111

6 1 5 2 0 4 7 8

1 8 D 4 2 7 16

Page 23: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

23Università di Pavia - corso di Fondamenti di Informatica

Conversione da base 16 a base 8

1111 1100 0000 1000 1010

3 7 4 0 2 1 2 8

F C 0 8 A 16

Page 24: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

24Università di Pavia - corso di Fondamenti di Informatica

Operazioni binarie

1 1 0 0 1 +

1 1 0 1 =

___________

1 0 0 1 1 0

+ 0 1

0 0 1

1 1 (1)0

- 0 1

0 0 (1)1

1 1 0

1 1 0 0 1 -

1 1 0 1 =

________

1 1 0 0

Somma

In parentesi è indicato il riporto

Sottrazione

In parentesi è indicato il prestito

25 +13 =____

38

25 -13 =____

12

Page 25: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

25Università di Pavia - corso di Fondamenti di Informatica

Operazioni binarie

1 1 0 0 1 x

1 1 0 1 =

1 1 0 0 1

1 1 0 0 1 - -

1 1 0 0 1 - - -

1 0 1 0 0 0 1 0 1

x 0 1

0 0 0

1 0 1

1 1 0 0 1 1 0 0 1

1 0 0 1

1 0

1 1 1

Moltiplicazione Divisione

25 x 13 = 325 25 : 9 = 2 con resto di 7

Page 26: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

26Università di Pavia - corso di Fondamenti di Informatica

Rappresentazione dei numeri nei calcolatori

• L’unità minima di informazione nei calcolatori è il bit. Il bit

corrisponde ad un sistema fisico dotato di stati stabili: passa/non

passa corrente, tensione alta/bassa, condensatore scarico/carico,

ecc.

• I calcolatori si basano sul sistema numerico binario (cifre 0 e 1)

• Si utilizza cioè un insieme di bit per rappresentare le cifre binarie. Il

numero di bit utilizzati è generalmente un multiplo di 8 (cioè si

utilizzano 1, 2, 4, 8 byte)

Page 27: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

27Università di Pavia - corso di Fondamenti di Informatica

Rappresentazione dei numeri nei calcolatori

• Si consideri un byte (8 bit). Un byte permette di rappresentare 28 stati

differenti; può pertanto memorizzare 256 diverse configurazioni

corrispondenti ai primi 256 numeri naturali (0-255)

b7 b6 b5 b4 b3 b2 b1 b0

0 0 1 0 0 1 0 1

Nella rappresentazione in valore assoluto:

N= b7 27 + b6 26 + b5 25 + b4 24 + b3 23 + b2 22 + b1 21 + b0 20

N=37

Page 28: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

28Università di Pavia - corso di Fondamenti di Informatica

Rappresentazione dei numeri positivi e negativi

• Esiste un problema: come rappresentare i numeri negativi

• Prima soluzione: rappresentazione in Modulo e Segno (anche

detta Binario Naturale)

Si utilizza un bit per rappresentare il segno del numero considerato

0 + (numero positivo)

1 - (numero negativo)

Se consideriamo un byte, rimangono ora 7 bit per il modulo del

numero: i numeri rappresentabili sono perciò [0-127]

+/- b6 b5 b4 b3 b2 b1 b0

Page 29: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

29Università di Pavia - corso di Fondamenti di Informatica

Rappresentazione dei numeri positivi e negativi

Consideriamo per

semplicità solo 4 bit.

In modulo e segno:

In valore assoluto:

+/- b2 b1 b0

Significato in modulo e segno

Rappresentazione binaria

Significato in valore assoluto

+7 0 111 7

+6 0 110 6

+5 0 101 5

+4 0 100 4

+3 0 011 3

+2 0 010 2

+1 0 001 1

+0 0 000 0

-0 1 000 8

-1 1 001 9

-2 1 010 10

-3 1 011 11

-4 1 100 12

-5 1 101 13

-6 1 110 14

-7 1 111 15

b3 b2 b1 b0

Page 30: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

30Università di Pavia - corso di Fondamenti di Informatica

Rappresentazione dei numeri in Modulo e Segno

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

7

6

5

4

3

2

1

-1

-2

-3

-4

-5

-6

-7

Rappresentazione

Numero

Page 31: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

31Università di Pavia - corso di Fondamenti di Informatica

Rappresentazione dei numeri in Modulo e Segno

• Esistono due rappresentazioni diverse dello 0 distanti 2n-1 fra di loro,

se n sono i bit usati per la rappresentazione (8 con 4 bit)

• Un incremento binario nella rappresentazione corrisponde ad un

incremento per numeri positivi, ma un decremento per numeri

negativi

• Numero minimo: -2n-1+1

• Numero massimo: 2n-1-1

Page 32: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

32Università di Pavia - corso di Fondamenti di Informatica

Rappresentazione in modulo e segno: problemi

• Addizione e sottrazione sono le operazioni di cui si deve disporre per poter

realizzare qualsiasi operazione aritmetica più complessa

• Si supponga che il calcolatore abbia una “Unità Aritmetica” che realizzi

indipendentemente le due operazioni.

• Di fronte ad una somma algebrica, il calcolatore dovrebbe:

– confrontare i due segni

– se uguali, attivare il circuito di addizione

– se diversi, identificare il maggiore (in valore assoluto) ed attivare il circuito di

sottrazione

– completare il risultato con il segno corretto

• I passi indicati non sono eseguibili contemporaneamente perché ognuno dipende

dai precedenti

• In pratica per effettuare somma e sottrazione si ricorre ad un unico circuito,

utilizzando un metodo che permette di evitare le operazioni di confronto

Page 33: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

33Università di Pavia - corso di Fondamenti di Informatica

Complemento alla base di un numero

• Nella rappresentazione in complemento alla base con n cifre

le bn combinazioni rappresentano numeri positivi e negativi.

• In particolare:

le combinazioni da 0 a bn:2 - 1 rappresentano i numeri positivi,

rispettando la usuale rappresentazione posizionale;

Le combinazioni da bn:2 fino a bn – 1 rappresentano i numeri

negativi, con la seguente definizione:

dato un numero positivo X, il suo corrispondente negativo è

dato da:

bn-X

Page 34: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

34Università di Pavia - corso di Fondamenti di Informatica

Complemento alla base – 1 di un numero

• Nella rappresentazione in complemento alla base – 1 con n

cifre le bn combinazioni rappresentano numeri positivi e

negativi.

• In particolare:

le combinazioni da 0 a bn:2 - 1 rappresentano i numeri positivi,

rispettando la usuale rappresentazione posizionale;

Le combinazioni da bn:2 fino a bn – 1 rappresentano i numeri

negativi, con la seguente definizione: dato un numero

positivo X, il suo corrispondente negativo è dato da:

(bn-1)-X

Page 35: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

35Università di Pavia - corso di Fondamenti di Informatica

Complemento alla base

Esempio

b=10, n=2; 102 configurazioni: i numeri da 0 a 49 rappresentano i positivi, con

il consueto significato; da 50 a 99 i negativi come previsto dal complemento

(-1 -> 99, -2 -> 98, … , -49 -> 51, -50 -> 50).

X=36; -X in complemento alla base (si dice complemento a 10) è: 102 - X =

100 - 36 = 64

b=10, n=4; i numeri da 0 a 4999 rappresentano i positivi; da 5000 a 9999 i

negativi (-1 -> 9999, -2 -> 9998, … , -4999 -> 5001, -5000 -> 5000)

X=1630; -X in complemento alla base è: 10000 - 1630 = 8370

Regola pratica: il complemento a 10 si trova analizzando le cifre a partire

da destra: gli zeri fino alla prima cifra significativa si

riportano tali e quali; della prima cifra significativa si fa il

complemento a 10, di tutte le altre il complemento a 9

Page 36: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

36Università di Pavia - corso di Fondamenti di Informatica

Complemento alla base

b=2, n=5

Positivi da 0 a 01111

Negativi da 10000 a 11111

X = 01011; trovo -X

1 0 0 0 0 0 -

0 1 0 1 1 =

Regola pratica: partendo dal bit meno significativo, si riportano invariati

tutti i bit fino al primo bit a 1 compreso; si complementano i rimanenti bit (0

1, 1 0)

b=2, n=7

Positivi da 0 a 0111111

Negativi da 1000000 a 1111111

X=0011000; trovo -X

1 0 0 0 0 0 0 0 -

0 0 1 1 0 0 0 =

1 0 1 0 1 1 1 0 1 0 0 0

Page 37: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

37Università di Pavia - corso di Fondamenti di Informatica

Complemento alla base -1

X=36, b=10, n=2

in complemento alla base -1 è: 99 - 36 = 63

Si ottiene complementando a 9 ogni singola cifra

X=01011, b=2, n=5

-X in complemento alla base -1 è: (25 - 1) - X = (100000 - 1) - X =

11111 - 01011 = 10100

Si ottiene complementando ogni singolo bit (0 1, 1 0)

Page 38: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

38Università di Pavia - corso di Fondamenti di Informatica

Complemento alla base

• Il complemento alla base si può ottenere anche sommando 1 al

complemento alla base -1 (per definizione)

Cb = bn - X

Cb-1 = (bn - 1) - X

Cb - Cb-1 = 1

C10 (36) = 64 che rappresenta - 36

C9 (36) = 63 che rappresenta - 36

Page 39: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

39Università di Pavia - corso di Fondamenti di Informatica

Complementi alla base e alla base -1

Nelle rappresentazioni in complemento alla base e in complemento alla

base -1 le rappresentazioni dei numeri negativi sono definite solo

quando si è stabilito il numero di cifre.

Il complemento alla base [e il complemento alla base -1] per

X=36, b=10, n=2 è:

64 [63]

Il complemento alla base [e il complemento alla base -1] per

X=36, b=10, n=3 è:

964 [963]

N.B: Tutti i numeri ottenuti rappresentano – 36 !!!

Page 40: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

40Università di Pavia - corso di Fondamenti di Informatica

Rappresentazione in complemento: Riepilogo

• Rappresentazione in complemento a 2: i numeri positivi sono

rappresentati dal loro modulo e hanno il bit più significativo (segno)

posto a 0. I numeri negativi sono rappresentati dalla quantità che

manca al numero positivo per arrivare alla base elevata al numero di

cifre utilizzate, segno compreso. Pertanto i numeri negativi hanno il

bit del segno sempre a 1

• Metà delle configurazioni sono perciò riservate ai numeri positivi e

metà ai numeri negativi

• Discorsi analoghi possono essere fatti per basi diverse da 2: in base

10 un numero è negativo se la prima cifra è 5, in base 8 se 4, in

base 16 se 8

Page 41: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

41Università di Pavia - corso di Fondamenti di Informatica

Rappresentazione in complemento alla base

Con n bit a disposizione:

• Il numero minimo rappresentabile è -2n-1

• Il numero massimo rappresentabile è 2n-1 - 1

• -1 è rappresentato da tutti 1 qualunque sia il numero di bit

considerato

• Il numero può essere interpretato considerando il bit più significativo

con segno negativo

b3 b2 b1 b0

N= - b3 23 + b2 22 + b1 21 + b0 20

Page 42: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

42Università di Pavia - corso di Fondamenti di Informatica

Rappresentazione in complemento alla base

Significato in complemento a 2

Rappresentazione binaria

Significato in valore assoluto

+7 0111 7

+6 0110 6

+5 0101 5

+4 0100 4

+3 0011 3

+2 0010 2

+1 0001 1

0 0000 0

-1 1111 15

-2 1110 14

-3 1101 13

-4 1100 12

-5 1011 11

-6 1010 10

-7 1001 9

-8 1000 8

Page 43: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

43Università di Pavia - corso di Fondamenti di Informatica

Rappresentazione in complemento a 2

• Vi è una sola rappresentazione dello 0 (0000)

• Tutti i numeri sono consecutivi. La

configurazione dello 0 segue quella di -1

trascurando il riporto

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

7

6

5

4

3

2

1

-1

-2

-3

-4

-5

-6

-7

-8

Numero

Rappresentazione

Page 44: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

44Università di Pavia - corso di Fondamenti di Informatica

Rappresentazione in complemento alla base -1

Significato in complemento

a 1

Rappresentazione binaria

Significato in valore assoluto

+7 0111 7

+6 0110 6

+5 0101 5

+4 0100 4

+3 0011 3

+2 0010 2

+1 0001 1

+0 0000 0

-0 1111 15

-1 1110 14

-2 1101 13

-3 1100 12

-4 1011 11

-5 1010 10

-6 1001 9

-7 1000 8

Il numero minimo è -2n-1+1

Il numero massimo è 2n-1-1

Page 45: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

45Università di Pavia - corso di Fondamenti di Informatica

Rappresentazione in complemento alla base -1

• Vi sono due rappresentazioni dello 0 (0000 e

1111)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

7

6

5

4

3

2

1

-1

-2

-3

-4

-5

-6

-7

Numero

Rappresentazione

• Nella rappresentazione in complemento a 1 i

numeri negativi si ottengono complementando

a 1 tutti i corrispondenti numeri positivi segno

compreso. Pertanto i numeri negativi hanno il

bit di segno sempre a 1

Page 46: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

46Università di Pavia - corso di Fondamenti di Informatica

Schema riassuntivo

Modulo e segno Complemento a 2 Complemento a 1

Zero 00…0000/10…00 00000…0 00…0/11…1

Valore massimo 2n-1-1 2n-1-1 2n-1-1

Valore minimo -2n-1+1 -2n-1 -2n-1+1

Bit di segno 0/1 0/1 0/1

Page 47: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

47Università di Pavia - corso di Fondamenti di Informatica

Rappresentazione di interi in complemento a 2

• Con 1 byte (8 bit)

max = 27-1 = 127

min = -27 = -128

• Con 2 byte (16 bit)

max = 215-1 = 32767

min = -215 = -32768

• Con 4 byte (32 bit)

max = 231-1 = 2 147 483 647

min = -231 = -2 147 483 648

Page 48: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

48Università di Pavia - corso di Fondamenti di Informatica

Utilità del complemento alla base

• Con la tecnica del complemento si può utilizzare un solo circuito per effettuare sia l’addizione,

sia la sottrazione

• Operiamo in base 10 e vogliamo calcolare A – B.

• Si supponga di conoscere il risultato dell’operazione 10 - B (complemento a 10 di B). Allora:

A - B = A + (10 - B) a condizione che si trascuri il riporto

• Analogo discorso con k cifre purché si disponga del risultato dell’operazione 10k – B

(complemento a 10k). Si ricordi sempre di fissare il numero di cifre

• Se operiamo in base 2, con k cifre:

A - B = A + (2k - B) a condizione che si trascuri il riporto

• Se si utilizza la tecnica del complemento alla base -1 occorre sommare il riporto al risultato

finale

Page 49: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

49Università di Pavia - corso di Fondamenti di Informatica

Operazioni aritmetiche in complemento: esempi

Usando il complementoA 43517 - 43517 +B 26106 = 73894 = (in complemento -26106 =

73894) ______ _______

A-B 17411 117411 (riporto da non considerare)

A 01001 - 01001 +B 00110 = 11010 = (in complemento -00110 =

11010) ______ ______

A-B 00011 100011 (riporto da non considerare)

A 42A61 - 42A61 +B 00B02 = FF4FE = (in complem. -00B02 = FF4FE)

______ ______A-B 41F5F 141F5F (riporto da non considerare)

Page 50: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

50Università di Pavia - corso di Fondamenti di Informatica

Operazioni aritmetiche in complemento: esempi

Con il complemento alla base -1 occorre sommare il riporto al risultato finale

A 43517 - 43517 + 17410 +

B 26106 = 73893 = 1 = ______ _______ _______

A-B 17411 117410 17411

A 01001 - 01001 + 00010 +

B 00110 = 11001 = 1 = ______ _______ _______

A-B 00011 100010 00011

A 42A61 - 42A61 + 41F5E +

B 00B02 = FF4FD = 1 = ______ _______ _______

A-B 41F5F 141F5E 41F5F

Page 51: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

51Università di Pavia - corso di Fondamenti di Informatica

Operazioni aritmetiche in complemento

Esempi con 6 cifre binarie

Complemento a 2 Complemento a 1

19 + (-17) 19 + (-17)

0 1 0 0 1 1 0 1 0 0 1 1

1 0 1 1 1 1 1 0 1 1 1 0

1 0 0 0 0 1 0 (+2) 1 0 0 0 0 0 1

1

0 0 0 0 1 0 (+2)

Page 52: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

52Università di Pavia - corso di Fondamenti di Informatica

Operazioni aritmetiche in complemento

Esempi con 6 cifre binarie

Complemento a 2 Complemento a 1

(-19) + 17 (-19) + 17

1 0 1 1 0 1 1 0 1 1 0 0

0 1 0 0 0 1 0 1 0 0 0 1

1 1 1 1 1 0 (-2) 1 1 1 1 0 1 (-2)

Page 53: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

53Università di Pavia - corso di Fondamenti di Informatica

Operazioni aritmetiche in complemento

Esempi con 6 cifre binarie

Complemento a 2 Complemento a 1

(-17) + (-2) (-17) + (-2)

1 0 1 1 1 1 1 0 1 1 1 0

1 1 1 1 1 0 1 1 1 1 0 1

1 1 0 1 1 0 1 (-19) 1 1 0 1 0 1 1

1

1 0 1 1 0 0 (-

19)

Page 54: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

54Università di Pavia - corso di Fondamenti di Informatica

Esempio di Sommatore: Componenti

a b Ri c Ro

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

+

I S

O

a b

Ro Σ Ri

c

a

Ro Ri

c

b

S I O

0 0 0

0 1 1

1 0 1

1 1 0

Page 55: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

55Università di Pavia - corso di Fondamenti di Informatica

A = a2a1a0 B = b2b1b0 C = c2c1c0

1) S=0

c0 = a0 + b0 c1 = a1 + b1 + R0 c2 = a2 + b2 + R1

→ C = A + B2) S=1

Esempio di Sommatore

a b

Ro Σ Ri

c

+a2

b2

R2

a b

Ro Σ Ri

c

+a1

b1

R1

a b

Ro Σ Ri

c

+a0

b0

R0

c0c2 c1

S

→ C = A + B +1 = A + (23 -1 – B)+1 = A - B

c0 = a0 + b0 + 1 c1 = a1 + b1 + R0 c2 = a2 + b2 + R1

Page 56: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

56Università di Pavia - corso di Fondamenti di Informatica

Rappresentazione di interi

Esercizio:

Rappresentare i numeri con 8 bit e complemento a 2 e a 1

Numero Complemento a 2 Complemento a 1

15 00001111 00001111

-15 11110001 11110000

0 00000000 00000000

1 00000001 00000001

-1 11111111 11111110

144 non rappresentabile non rappresentabile

128 non rappresentabile non rappresentabile

-128 10000000 non rappresentabile

Page 57: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

57Università di Pavia - corso di Fondamenti di Informatica

Operazioni aritmetiche in complemento

Esempi con 6 cifre binarie

19 + 17

0 1 0 0 1 1 + 0

1 0 0 0 1 =

Si sono sommati due numeri positivi e si è ottenuto un numero negativo. Il

risultato corretto (+36) non è rappresentabile in complemento a 2 con 6 bit

(massimo numero rappresentabile = + 31)

Il fenomeno si chiama traboccamento o overflow

1 0 0 1 0 0 (-28)

Page 58: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

58Università di Pavia - corso di Fondamenti di Informatica

Operazioni aritmetiche in complemento

Complemento a 2

(-19) + (-17)

1 0 1 1 0 1 +

1 0 1 1 1 1 =

Si sono sommati due numeri negativi e si è ottenuto un numero positivo. Il

risultato corretto (-36) non è rappresentabile in complemento a 2 con 6 bit

(minimo numero rappresentabile = -32 in C.a 2 e –31 in C. a 1)

Il fenomeno si chiama traboccamento o overflow

1 0 1 1 1 0 0 (28)

Esempi con 6 cifre binarie

Complemento a 1

(-19) + (-17)

1 0 1 1 0 0 +

1 0 1 1 1 0 =

1 0 1 1 0 1 0 + 1 =

0 1 1 0 1 1 (27)

Page 59: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

59Università di Pavia - corso di Fondamenti di Informatica

Somma di numeri di N bit in complemento a 2

0 A 2N-1 -1

0 B 2N-1 -1

-2N-1 A < 0

0 B 2N-1-1

0 A 2N-1 -1

-2N-1 B < 0

-2N-1 A < 0

-2N-1 B < 0

0 S 2N-2 -2N-1 S < 2N-1-1 -2N-1 S < 2N-1-1 -2N S < 0

Sommando due numeri positivi si ha overflow se si

ottiene un numero negativo.

S potrebbe non essere

rappresentabile in N bit ma lo è sempre in N+1

bit.

Non ci sono mai problemi di overflow.

Non ci sono mai problemi di overflow.

Sommando due numeri negativi si ha overflow se si ottiene un numero positivo.

S potrebbe non essere

rappresentabile in N bit ma lo è sempre in N+1

bit.

Page 60: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

60Università di Pavia - corso di Fondamenti di Informatica

Esempi di somma di numeri binari

Complemento a 2

+ 120 +

+ 105 =

- 31

Overflow=1

0 1 1 1 1 0 0 0 +

0 1 1 0 1 0 0 1 =

1 1 1 0 0 0 0 1

1 1 1 1 1 0 1 1 +

1 1 1 1 0 0 0 0 =

1 1 1 0 1 0 1 1

Valore Assoluto

120 +

105 =

225

Riporto=0

251 +

240 =

235

Riporto=1

- 5 +

- 16 =

- 21

Overflow=0

Page 61: 52 Università di Pavia - corso di Fondamenti di Informatica Sistemi di numerazione La rappresentazione più semplice: | | | | …. poco rappresentativa; difficoltà

61Università di Pavia - corso di Fondamenti di Informatica

Tecnica dell’eccesso

• Usato per scopi particolari

• Viene sommata una

costante fissa, ad esempio

con n bit pari a 2n-1, al

numero dotato di segno da

rappresentare; il numero

risultante viene convertito

in binario.

• Con questa convenzione il

bit di segno è invertito

+7 1111

+6 1110

+5 1101

+4 1100

+3 1011

+2 1010

+1 1001

0 1000

-1 0111

-2 0110

-3 0101

-4 0100

-5 0011

-6 0010

-7 0001

-8 0000