Rappresentazione dei numeri -...

22
Università degli Studi di Cassino e del Lazio Meridionale C. Marrocco Rappresentazione dei numeri Base di numerazione: dieci Cifre: 0 1 2 3 4 5 6 7 8 9 Rappresentazione posizionale possibile per la presenza dello zero Esempio: 3201 = (3·10 3 ) + (2·10 2 ) + (0·10 1 ) + (1·10 0 )

Transcript of Rappresentazione dei numeri -...

Page 1: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Rappresentazione dei numeri

• Base di numerazione: dieci

– Cifre: 0 1 2 3 4 5 6 7 8 9

• Rappresentazione posizionale

– possibile per la presenza dello zero

Esempio:

3201 = (3·103) + (2·102) + (0·101) + (1·100)

Page 2: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

In generale

• Rappresentazione in base B B-1 cifre

– 0 1 2 … B-1

• Conversione verso la base decimale:

– dn-1dn-2 ... d2d1d0 è un numero a n cifre

– valore =

dn-1 · Bn-1 + dn-2 · Bn-2 + ... + d2 · B2 + d1 · B1 + d0 · B0

Page 3: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Altre basi

• B=2 :

– cifre: 0 1

– 1011010

1·26 + 0·25 + 1·24 + 1·23 + 0·22 + 1·2 + 0·1 =

64 + 16 + 8 + 2 = 90 7 cifre binarie 2 cifre decimali

• B=16 :

– cifre: 0 1 2 3 4 5 6 7 8 9 A B C D E F

– 524

5·162 + 2·16 + 4·1 = 1316

3 cifre esadecimali 4 cifre decimali

Page 4: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Quale base usare ?

• Decimale

– naturale per gli esseri umani.

• Esadecimale

– utile (agli esseri umani) per esaminare lunghe stringhe di

bit

• Binaria

– rappresentazione ottimale per il calcolatore

… perché non usare una codifica binaria

della rappresentazione in base 10 ?

Page 5: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Conversione base 10 base 2 (interi)

• Come ottenere la rappresentazione in base 2 di un

numero intero T rappresentato in base 10 ?

• Supponiamo:

T = cn-1·2n-1 + cn-2·2

n-2 + … + c2·22 + c1·2

1 + c0·20

ci{0,1}

• Non conosciamo:

– le cifre ci

– il numero di cifre n

Page 6: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Conversione base 10 base 2 (interi)

T = cn-1·2n-1 + cn-2·2

n-2 + … + c2·22 + c1·2

1 + c0·20 =

= (cn-1·2n-2 + cn-2·2

n-3 + … + c2·21 + c1) ·2 + c0 =

= Q0·2 + c0

Q0= T div 2 c0 = T mod 2

Q0 = (cn-1·2n-3 + cn-2·2

n-4 + … + c2)·2 + c1 = Q1·2 + c1

Q1 = Q0 div 2 c1 = Q0 mod 2

Page 7: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Conversione base 10 base 2 (interi)

• In generale, per ottenere la rappresentazione in base 2 di un

numero intero rappresentato in base 10, se non si conoscono

né le cifre né il numero di cifre, basta dividere il numero per la

base e prendere il resto in ordine inverso.

Es.:

43/2 = 21 con resto 1

21/2 = 10 con resto 1

10/2 = 5 con resto 0 4310 = 110112

5/2 = 2 con resto 1

2/2 = 1

Page 8: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Aritmetica in base 2

Le operazioni aritmetiche si svolgono in maniera analoga a

quanto si fa in base 10.

+ 0 1

0 0 1

1 1 10

* 0 1

0 0 0

1 0 1 “tavola pitagorica” in

base 2

Page 9: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Aritmetica in base 2

1 1

1 1 1 +

1 1 0 =

1 1 0 1

1 0 1 *

1 1 =

1 0 1

1 0 1

1 1 1 1

Page 10: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Aritmetica dei registri

• I registri di memoria sono supporti di lunghezza finita

• Ciò impone delle restrizioni all’insieme di numeri

rappresentabili e, di conseguenza, dei vincoli all’aritmetica

• Registro a N bit 2N valori diversi rappresentabili

– Es.: 8 bit 256 valori

possibile rappresentare l’intervallo [0, 255]

Page 11: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Aritmetica dei registri

0 1 1 0 1 1 0 1 +

1 0 0 0 1 0 0 1 =

1 1 1 1 0 1 1 0

1 0 9 +

1 3 7 =

2 4 6

Non ci sono problemi nel caso in cui l’operazione produce un

risultato rappresentabile nel registro

Page 12: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Aritmetica dei registri

1 1 1 0 1 1 0 1 +

1 0 0 0 1 0 0 1 =

1 0 1 1 1 0 1 1 0

2 3 7 +

1 3 7 =

3 7 4

1 1 8

Se l’operazione fornisce un risultato R non rappresentabile, si produce

un riporto uscente dal registro, mentre all’interno rimane una parte

della rappresentazione del risultato (l’aritmetica dei registri a N bit è

caratterizzata da una congruenza mod 2N : R mod 2N)

Page 13: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Rappresentazione dei numeri relativi

• Rappresentazione in segno e modulo

• Rappresentazione in complementi alla base

• Rappresentazione per eccessi

Page 14: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Rappresentazione dei numeri negativi

• Dobbiamo tener conto del segno del numero.

• La soluzione più immediata è quella di utilizzare un bit del

registro come segno del numero. I restanti bit

costituiscono il numero in valore assoluto.

• L’intervallo di rappresentazione è [-2N-1+1 , +2N-1-1].

+/- modulo

Possibile

convenzione:

0 + 1 -

Page 15: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Rappresentazione dei numeri negativi

• La posizione del bit di segno diventa di notevole

importanza.

• Con questa rappresentazione si ha un’ambiguità nello 0.

Lo zero può essere rappresentato sia dalla stringa tutti

zero sia dalla stringa uno (come bit di segno) seguito da

tutti zero.

• Le operazioni diventano alquanto complicate. Somma e

sottrazione sono operazioni nettamente diverse.

Page 16: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Rappresentazione in complemento alla base

• Complementi alla base: i numeri aventi segno

negativo sono rappresentati come complemento a 2

del numero rappresentato.

• La rappresentazione di un numero x nell’intervallo è

data da R(x)=(x+2N) mod 2N.

• Il bit più significativo è indicativo del segno (“bit di

segno”). In questo caso il valore 1 rappresenta il

segno negativo.

• L’intervallo di numeri rappresentati è [-2N-1 , +2N-1-1].

Si risolve l’ambiguità dello zero che viene

rappresentato dalla stringa tutti zero mentre la

stringa 1 e tutti zero ora rappresenta il -1.

Page 17: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Calcolo rapido del complemento alla base

• Per ottenere rapidamente la rappresentazione in

complemento alla base di un numero negativo su N bit

– si estrae la rappresentazione del valore assoluto del

numero su N bit

– si complementano le cifre ad una ad una

– si aggiunge 1

Es.: complemento alla base su 8 bit di -33

3310 =00100001

Complemento tutti i bit ottenendo 11011110

Poi aggiungo 1: 11011110 + 1 = 11011111

Page 18: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Operazioni in complemento alla base

• Un ulteriore vantaggio dei complementi è che

l’uguaglianza tra le operazioni di somma e differenza.

• Le addizioni si realizzano direttamente sulle

rappresentazioni in quanto R(x + y) = R(x) + R(y)

• Anche le sottrazioni si valutano tramite addizioni,

ponendo x-y come x+(-y); di conseguenza

R(x-y) = R(x) + R(-y)

• Nel caso in cui l’operazione produce un numero al di fuori

dell’intervallo di rappresentazione si ha un overflow.

Page 19: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Operazioni in complemento alla base

Supponendo di avere 4 bit a disposizione:

+4 0100 +4 0100

+2 + 0010 -2 +1110

+6 0|0110 +2 1|0010

-4 1100 +5 0101 -6 1010

-2 + 1110 +4 +0100 -3 +1101

-6 1|1010 -7 0|1001 +7 1|0111

overflow

Page 20: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Rappresentazione per eccessi

• Un altro metodo per la rappresentazione

dei numeri interi è dato dagli eccessi.

• La rappresentazione di un numero x

nell’intervallo è data da R(x) = x+2N-1.

• Anche in questo caso il bit più

significativo è indicativo del segno ma

questa volta lo zero rappresenta i numeri

negativi.

• L’intervallo di numeri rappresentati è

[-2N-1,+2N-1-1]. Lo 0 è rappresentato dalla

stringa 1 e tutti 0.

00000 -16

00001 -15

00010 -14

00011 -13

. .

. .

01110 -2

01111 -1

10000 0

10001 +1

10010 +2

. .

. .

11101 +13

11110 +14

11111 +15

Page 21: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Operazioni in eccessi

• Le addizioni si realizzano direttamente sulle

rappresentazioni in quanto R(x+y) = R(x) + R(y)

• Anche le sottrazioni si valutano tramite addizioni,

ponendo x-y come x+(-y); di conseguenza

R(x-y) = R(x) + R(-y)

• Siccome R(x) + R(y) = x + y + 2N-1 + 2N-1, il risultato

necessita di una correzione

• Nel caso in cui l’operazione produce un numero al di

fuori dell’intervallo di rappresentazione si ha un

overflow

Page 22: Rappresentazione dei numeri - unicas.itwebuser.unicas.it/fontanella/fondInfo1819/3_RapprNumIntFI1819.pdf · Rappresentazione dei numeri • Base di numerazione: dieci ... • In generale,

Università degli Studi di

Cassino e del Lazio MeridionaleC. Marrocco

Confronto tra complementi alla base ed

eccessi

• Entrambe permettono di realizzare una sottrazione

tramite addizione (macchine aritmetiche più semplici).

• Le operazioni in eccessi richiedono un aggiustamento

finale.

• La rappresentazione in complementi rende più difficile

il confronto.