80
Rappresentazione di dati numerici

Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

Embed Size (px)

Citation preview

Page 1: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

Rappresentazione di dati numerici

Page 2: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

2© Piero Demichelis

Sistemi numerici

• Si suddividono in:

- Non posizionali : quali ad esempio il sistema di numerazioneromano (i cui simboli sono: I, II, III, IV, V, X, L, C, D, M) oppurequello egiziano

- Posizionali : quali ad esempio il sistema arabo (decimale) e ilsistema maya (ventesimale).

• Nei sistemi posizionali le operazioni aritmetiche risultanomolto agevoli mentre in quelli non posizionali sonoalquanto complicate.

Page 3: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

3© Piero Demichelis

Sistema posizionale a base fissa

• Nei sistemi numerici a base fissa, un numero N può essere rappresentato in uno del seguenti modi:

N = dn-1 dn-2 ........ d1 d0 . d-1 ........ d-m

N = dn-1· rn-1 + ..... + d0· r0 + d-1· r-1 + ..... + d-m· r-m

1ni

ii m

N d r−

= −

= ⋅∑

Page 4: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

4© Piero Demichelis

Sistemi numerici

• Proprietà di un sistema numerico a base fissa

- è a rango illimitato : ogni numero intero vi può essere rappresentato;

- è a rappresentazione unica : ad ogni numero intero corrisponde un solo insieme ordinato di cifre;

- è irridondante : ad ogni insieme ordinato di cifre corrisponde un solo numero non rappresentato da altri insiemi ordinati.

Page 5: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

5© Piero Demichelis

Sistema decimale

• r = 10

• cifre: { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }

- Esempio:

10110 = 1 × 102 + 0 × 101 + 1 × 100

= 100 + 0 + 1= 10110

Page 6: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

6© Piero Demichelis

Sistema binario

• r = 2

• cifre: { 0, 1 }

- Esempio:

1012 = 1 × 22 + 0 × 21 + 1 × 20

= 4 + 0 + 1 = 510

Page 7: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

7© Piero Demichelis

Sistema ottale

• r = 8

• cifre: { 0, 1, 2, 3, 4, 5, 6, 7 }

- Esempio:1018 = 1 × 82 + 0 × 81 + 1 × 80

= 64 + 0 + 1 = 6510

• molto utile per scrivere in modo compatto i numeri binari(ad ogni 3 cifre binarie corrisponde una cifra ottale)

( 1 1 0 1 1 0 0 0 1) 2 =( 6 6 1 ) 8

Page 8: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

8© Piero Demichelis

Sistema esadecimale

• r = 16

• cifre: { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F }

- Esempio:101H = 1 × 162 + 0 × 161 + 1 × 160

= 256 + 0 + 1 = 25710

• anch’esso utile per scrivere in modo compatto i numeribinari (ad ogni 4 cifre binarie corrisponde 1 cifraesadecimale)

( 1 1 0 1 1 0 0 0 1) 2 =( 1 B 1 ) 16

Page 9: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

9© Piero Demichelis

Sistema base 5

• r = 5

• cifre: { 0, 1, 2, 3, 4 }

- Esempio:

1015 = 1 × 52 + 0 × 51 + 1 × 50

= 25 + 0 + 1 = 2610

Page 10: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

10© Piero Demichelis

Sistema binario

• Caratteristiche- su n cifre si rappresentano 2n numeri; ad esempio su 4 cifre:

- Prime 16 potenze del 2:

0 ... 0 1000 ... 81 ... 1 1001 ... 910 ... 2 1010 ... 1011 ... 3 1011 ... 11100 ... 4 1100 ... 12101 ... 5 1101 ... 13110 ... 6 1110 ... 14111 ... 7 1111 ... 15

20 ... 1 29 ... 512 21 ... 2 210 ... 1024 22 ... 4 211 ... 2048 23 ... 8 212 ... 4096 24 ... 16 213 ... 8192 25 ... 32 214 ... 1638426 ... 64 215 ... 3276827 ... 128 216 ... 6553628 ... 256

Page 11: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

11© Piero Demichelis

Sistema binario

• La cifra binaria è detta bit

parola che deriva dall’unione di due elisioni:

binary digit

• I bit estremi di un numero binario si chiamano:

1 0 1 1 1 0 0 1 0 0

MSB(Most Significant Bit)

LSB(Least Significant Bit)

Page 12: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

12© Piero Demichelis

Limiti del sistema binario

• Poiché su n bit si rappresentano 2n numeri, per rappresentare la stessa grandezza occorrono molte piùcifre rispetto al sistema numerico decimale.

bit simboli val. minimo val. massimo

4 16 0 158 256 0 25516 65,536 0 65,53532 4,294,967,296 0 4,294,967,295

Page 13: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

13© Piero Demichelis

Conversione da binario a decimale

• Si applica direttamente la definizione effettuando la somma pesata delle cifre binarie:

1012 = 1 × 22 + 0 × 21 + 1 × 20

= 4 + 0 + 1

= 5

1101.12 = 1 ⋅ 23 + 1 ⋅ 22 + 0 ⋅ 21 + 1 ⋅ 20 + 1 ⋅ 2-1

= 8 + 4 + 0 + 1 + 0.5= 13.510

Page 14: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

14© Piero Demichelis

Conversione da binario a decimale (2)

B) Metodo consigliato: da

012

22

21

1 ...)( drdrdrdrdNV nn

nn ++++= −

−−

012321

0123

22

1

012

22

21

1

))....))(...(...........

)...(

...)(

drdrdrdrdrd

drdrdrdrd

drdrdrdrdNV

nnn

nn

nn

nn

nn

+++++===

=+++++=

=+++++=

−−−

−−

−−

−−

−−

mettendo in evidenza i fattori comuni, si ricava:

Page 15: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

15© Piero Demichelis

Conversione da binario a decimale (3)

Si deduce il seguente algoritmo:

1. Si parte dalla cifra più significativa2. Si moltiplica per la base3. Si somma la cifra successiva4. Si ripete da 2. fino ad arrivare a d0

Esempio: 10102 = ((1*2+0)*2+1)*2+0 = 1010

Page 16: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

16© Piero Demichelis

Conversione da decimale a binario

N = dn-1· rn-1 + ..... + d0· r0 + d-1· r-1 + ..... + d-m· r-m

• Consideriamo la sola parte intera e riscriviamo il numero binario nel modo seguente:

N = d0 + 2 · (d1 + 2 · (d2 + ...... + dn-1))

• Si può osservare che dividendo N per la base 2, si ottiene un quoziente (d1 + r · (d2 + ...... + dn-1)) e un resto d0, che costituisce proprio la cifra meno significativa del numero nella base 2.

• Dividendo successivamente il quoziente per la base 2 si trova ancora un quoziente e un resto d1, che è la cifra di peso uno cercata, e cosìvia.

Page 17: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

17© Piero Demichelis

Esempio

• Esempio:

13 6 3 1 0 quozienti1 0 1 1 restid0 d1 d2 d3

1310 = 11012

Page 18: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

18© Piero Demichelis

Numero di bit dellarappresentazione binaria

Problema: dato N10, quanti bit (n) occorrono per rappresentarlo in base 2 ?

Con n bit il massimo numero rappresentabile è:

1221

0max −== ∑

=

nn

i

iN

Con n-1 bit il massimo numero rappresentabile è:

122 12

0

'max −== −

=∑ nn

i

iN

Page 19: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

19© Piero Demichelis

Numero di bit dellarappresentazione binaria (2)

Pertanto per rappresentare un numero x tale che x ≤ 2n-1 e x > 2n-1-1 occorrono n bit.

Esempio: 3=22-1 < 5 < 7=23-1: 5 si rappresenta su 3 bit (infatti 510 = 1012).Ora:

2n-1-1 < x ≤ 2n-12n-1 < x+1 ≤ 2n

n-1 < log2(x+1) ≤ n

Page 20: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

20© Piero Demichelis

Numero di bit dellarappresentazione binaria (3)

n = ⎡log2 (x+1)⎤

⎡k⎤ = intero superiore o uguale a k

In generale, per una base r:

n = ⎡logr (x+1)⎤

Page 21: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

21© Piero Demichelis

Numero di bit dellarappresentazione binaria (4)

Dato N, il rapporto tra cifre decimali e bit occorrenti per rappresentarlo:

D / B = ⎡log10(N+1)⎤ / ⎡log2(N+1)⎤

non è costante al variare di N.

Si può però osservare che:210 = 1024 ≅ 1000 = 103 → 10 bit ogni 3 cifre decimali.

Questo rapporto si mantiene per un largo intervallo di valori.

Page 22: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

22© Piero Demichelis

Numero di bit dellarappresentazione binaria (5)

210 = 1024 ≅ 103 → Kilo

220 = 1.048.576 ≅ 106 → Mega

230 = 1.073.741.824 ≅ 109 → Giga

Page 23: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

23© Piero Demichelis

Conversione da decimale a binario

• Dato un numero frazionario:

N = a-1 2-1 + a-2 2-2 + ...... + a-m 2-m

• moltiplicando N per la base 2, si ricava come parte intera la cifra a-1, cioè la prima cifra binaria.

• Eliminata questa parte intera, moltiplicando quanto resta ancora per 2, si ricava come parte intera a-2, ecc.

• Le parti intere, scritte nel medesimo ordine con cui sono state ricavate, rappresentano il numero frazionario binario cercato.

Page 24: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

24© Piero Demichelis

Esempio

• Regola: si moltiplica per due la parte frazionaria e siprende la cifra intera prodotta dal risultato proseguendofino alla precisione richiesta.

- Esempio: 0.34 x2

0.68 x 0.3410 = 0.010122

1.36 x2

0.72 x2

1.44 ecc. 13.3410 = 1101.01012

Page 25: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

25© Piero Demichelis

Per convertire un numero con parte intera e parte frazionaria, si convertono separatamente le due parti e poi si giustappongono.

Esempio: 25.812510 = (?)2

2510 = 110012 (metodo delle divisioni successive)0.812510 = 0.11012 (metodo dei prodotti successivi)

25.812510 = (11001.1101)2

Page 26: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

26© Piero Demichelis

Conversioni tra sistemi in base qualsiasi

• E’ ovvio che le regole di conversione decimale-binariosono del tutto generali e valgono qualsiasi siano i sistemi numerici coinvolti.

• Ad esempio per convertire il numero decimale 365 in base 7 si divide per 7:

365 52 7 1 01 3 0 1

36510 = 10317

Page 27: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

27© Piero Demichelis

Operazioni aritmetiche

• Le operazioni aritmetiche in un qualsiasi sistema numerico si possono eseguire nello stesso identico modo che conosciamo così bene per il sistema numerico decimale.

• L’avvertenza è solo quella di costruire la “tabellina”opportuna per quel particolare sistema numerico: si ricordi che la tabellina per il sistema numerico decimale ce la siamo studiata a memoria sin dall’infanzia!!!!

• Il nostro interesse è però particolarmente concentrato sul sistema numerico binario e sono proprio le operazioni aritmetiche in binario che affronteremo ora.

Page 28: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

28© Piero Demichelis

Somma in binario

• Regole base:0 + 0 = 00 + 1 = 11 + 0 = 11 + 1 = 0 con riporto (carry) di 1

• Si effettuano le somme parziali tra i bit dello stesso peso, propagando gli eventuali riporti:

1 10 1 1 0 + 6 +0 1 1 1 = 7 =1 1 0 1 13

Page 29: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

29© Piero Demichelis

Somma completa

• La somma completa (full addition) tiene conto del riportoper cui si sommano due bit ed un carry ottenendo come risultato un bit di somma e un bit di riporto

A B Carry S Rip

0 0 0 0 0

0 1 0 1 0

1 0 0 1 0

1 1 0 0 1

0 0 1 1 0

0 1 1 0 1

1 0 1 0 1

1 1 1 1 1

Page 30: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

30© Piero Demichelis

Sottrazione in binario

• Regole base:0 – 0 = 00 – 1 = 1 con prestito (borrow) di 1 1 – 0 = 11 – 1 = 0

• Si eseguono le sottrazioni bit a bit tenendo conto deiprestiti:

11 1 0 0 - 12 -1 0 1 0 = 10 =0 0 1 0 2

Page 31: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

31© Piero Demichelis

Sottrazione completa

• Analogamente alla somma, è possibile definire la sottrazione completa (sottrazione tra due bit ed un borrow )

A B Borrow S Prest

0 0 0 0 0

0 1 0 1 1

1 0 0 1 0

1 1 0 0 0

0 0 1 1 1

0 1 1 0 1

1 0 1 0 0

1 1 1 1 1

Page 32: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

32© Piero Demichelis

Moltiplicazione in binario

• Il prodotto tra due numeri binari si può calcolare con la tecnica già nota per i numeri in base 10, detta della somma e scorrimento.

- Esempio:1 0 1 1 x 11 x

1 0 1 = 5 =1 0 1 1 55

0 0 0 0 1 0 1 11 1 0 1 1 1

• Nella pratica si usano accorgimenti particolari basatisull’operazione di scorrimento (shift ).

Page 33: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

33© Piero Demichelis

Divisione in binario

• Come per le altre operazioni applichiamo le stesse regole che usiamo col sistema decimale:

- Esempio:1 0 1 0 1 1 10 0 0 1 1 1 21 / 3 = 71 0 10 1 1

1 0 01 1

0 0 1 11 10 0

Page 34: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

34© Piero Demichelis

L’operazione di shift

• Equivale ad una moltiplicazione o divisione per la base.

• Consiste nel “far scorrere ” i bit (a sinistra o a destra) inserendo opportuni valori nei posti lasciati liberi.

• In decimale equivale a moltiplicare (shift a sinistra) o dividere (shift a destra) per 10.

• In binario equivale a moltiplicare (shift a sinistra) o dividere (shift a destra) per 2.

Page 35: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

35© Piero Demichelis

Shift a sinistra

• Si inserisce come LSB un bit a zero

• Equivale ad una moltiplicazione per due

0011 « 1 = 0110 ( 3 × 2 = 6 )0011 « 2 = 1100 ( 3 × 22 = 12 )0011 « 3 = 11000 ( 3 × 23 = 24 )

0 0 1 1

0 1 1 0

« 1 (shift a sinistra di 1 posizione)

0

Page 36: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

36© Piero Demichelis

Shift a destra

• Si inserisce come MSB un bit a zero

• Equivale ad una divisione per due

0110 » 1 = 0011 ( 6 : 2 = 3 )0110 » 2 = 0001 ( 6 : 4 = 1 ) troncamento!

0 1 1 0

0 1 1 0

» 1 (shift a destra di 1 posizione)

0

Page 37: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

37© Piero Demichelis

Moltiplicazioni

• Una qualsiasi moltiplicazione tra due numeri può essere trasformata in una serie di shift e di somme, operazioni che vengono eseguite molto velocemente dai microprocessori.

• Ad esempio il prodotto 14 x 13 diventa:14 · 13 = 14 · (8 + 4 + 1) = 14 · 8 + 14 · 4 + 14 · 11410 = 11102 1 1 1 1

1110000 +1110 « 3 + 1110 « 2 + 1110 111000 +

1110 =10110110

Page 38: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

38© Piero Demichelis

Limiti della rappresentazione

• Quando scriviamo sulla carta non ci preoccupiamo quasi mai della grandezza dei numeri (a meno di particolari necessità).

• Nelle macchine numeriche un numero deve essere rappresentato in un particolare dispositivo elettronico interno che si chiama registro ed è paragonabile ad una cella di memoria.

• Caratteristica fondamentale di questo dispositivo è la sua dimensione (numero di bit) stabilita in sede di progetto: ovvero in un elaboratore potremo rappresentare solo una quantità limitata di numeri.

Page 39: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

39© Piero Demichelis

Limiti della rappresentazione

• Ad esempio se il nostro contenitore (registro) è lungo 5 bit:

potremo rappresentare solamente i numeri binari compresi tra 0

0 0 0 0 0e 31

1 1 1 1 1

• Inoltre dovremo in qualche modo introdurre il segno dei numeri!

Page 40: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

40© Piero Demichelis

I numeri con segno

• Oltre al problema relativo al valore del numero bisognatrovare il modo di rappresentare il segno.

• Il segno dei numeri può essere solo di due tipi:positivo ( + )negativo ( - )

• Sembrerebbe quindi facile rappresentarlo in binario, tuttavia la soluzione più semplice (1 bit riservato al segno) non è sempre conveniente.

• Per tener conto del segno anziché il sistema numericobinario si utilizzano dei codici binari che hanno tuttaviacome base, ovviamente, il sistema numerico binario.

Page 41: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

41© Piero Demichelis

Modulo e segno

• Su N bit, un bit è destinato al segno (in binario 0 = +,1 = -) e N-1 bit al valore assoluto (anche detto modulo)

S modulo

• E’ un codice che ricorda molto il nostro modo dirappresentare i numeri sulla carta.

• Presenta però gravi svantaggi dovuti alla doppiarappresentazione dello zero (esistono e sono leciti infattisia + 0, che - 0) e alla complessità delle operazioniaritmetiche.

Page 42: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

42© Piero Demichelis

Modulo e segno

• Esempi - usando una codifica su quattro bit:+ 310 → 0011MS

− 310 → 1011MS

• Si ha una doppia rappresentazione dello zero:0000MS → + 010

1000MS → − 010

• In generale su N bit sono rappresentabili i valori:

- ( 2N-1 - 1 ) ≤ x ≤ + ( 2N-1 - 1 )

8 bit => [ -127 ÷ +127 ]16 bit => [ -32.767 ÷ +32.767 ]

Page 43: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

43© Piero Demichelis

Complemento a 1

• Considerando numeri binari di n bit, si definiscecomplemento a uno di un numero A la quantità:

A = 2n - 1 – A

• Viene anche detto semplicemente complemento.

• Regola pratica:il complemento a uno di un numero binario A si ottiene cambiando il

valore di tutti i suoi bit (complementando ogni bit)- Esempio:

A = 1011 → A = 0100

Page 44: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

44© Piero Demichelis

Complemento a 2

• Considerando numeri binari di n bit, si definiscecomplemento a due di un numero A la quantità:

A = 2n – A

Regola pratica:il complemento a due di un numero binario A si ottiene sommando

uno al suo complemento (a uno)

- Esempio:

A = 1011 → A = 0100 → A = 0101

Page 45: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

45© Piero Demichelis

Complemento a 2

• E’ usato per rappresentare numeri relativi:

( A ≥ 0 ) 0 A2 (= AMS)( A < 0 ) complemento a 2 di A

• In questo modo l’MSB indica il segno: 0 = +, 1 = -

• Regola alternativa per la determimazione del complemento a due: si parte da destra, si lasciano inalterati tutti gli zeri fino al primo unoche si lascia inalterato, si complementano tutti gli altri bit

• Esempio:A = 001101001000; A = 110010111000

Page 46: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

46© Piero Demichelis

Complemento a 2

• Esempio - usando una codifica su 4 bit:

+ 310 → 0 ( 32 ) → 0011CA2

- 310 → - 0011 → 1100 + 1 → 1101CA2

• In generale su N bit sono rappresentabili i valori:

- ( 2N-1 ) ≤ x ≤ + ( 2N-1 - 1 )

8 bit => [ -128 ÷ +127 ]16 bit => [ -32.768 ÷ +32.767 ]

Page 47: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

47© Piero Demichelis

Somma e sottrazione in complemento a 2

• La somma si effettua direttamente, senza badare ai segnidegli operandi, come fossero due normali numeri binari.

• La sottrazione si effettua sommando al minuendo ilcomplemento a 2 del sottraendo:

A – B → A + (- B) ovvero: A + B

• Esempio:0 1 0 1 0 + 10 +1 0 1 0 0 = - 12 =1 1 1 1 0 - 2

Page 48: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

48© Piero Demichelis

Overflow

• Si usa il termine overflow per indicare l’errore che siverifica in un sistema di calcolo automatico quando ilrisultato di un’operazione non è rappresentabile con la medesima codifica e numero di bit degli operandi.

• Nella somma in binario puro si ha overflow quando siopera con un numero fisso di bit e si genera un riporto(carry) sul bit più significativo (MSB, quello più a sinistra).

Esempio: somma tra numeri di 4 bit in binario puro

0 1 0 1 +1 1 1 0 =

overflow! → 1 0 0 1 1

Page 49: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

49© Piero Demichelis

Overflow in complemento a 2

1. Operandi con segno discorde:- non si può mai verificare overflow!!!!!

2. Operandi con segno concorde: - c’è overflow quando il risultato ha segno discorde da quello dei

due operandi

3. In ogni caso, si trascura sempre il carry (riporto) oltre il MSB

Esempi:0 1 0 1 + 1 1 1 0 +0 1 0 0 = 1 1 0 1 =1 0 0 1 1 1 0 1 1 =

overflow! carry, risultato OK

Page 50: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

50© Piero Demichelis

Fixed-point

• Si usa un numero fisso di bit per la parte intera e per quella frazionaria (e non si rappresenta la virgola!)

• Ad esempio (4 + 4 bit, binario puro):

15.9375 = 111111110.0625 = 00000001

virgola sottintesa

Page 51: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

51© Piero Demichelis

Fixed-point

• Vantaggi:- gli operandi sono allineati per cui le operazioni aritmetiche

risultano facili ed immediate;- la precisione assoluta è fissa

• Svantaggi:- l’intervallo di valori rappresentati è assai modesto- la precisione dei numeri frazionari rappresentati molto scarsa

• Utilizzo tipico:- DSP (Digital Signal Processor)- Sistemi digitali per applicazioni specifiche (special-purpose)- Numeri interi nei calcolatori

Page 52: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

52© Piero Demichelis

Rappresentazione di numeri interi

• A causa dell’estrema semplicità che presentano le operazioni aritmetiche in complemento a 2, in tutte le macchine numeriche i numeri interi vengono rappresentati in questo codice.

• Il numero di bit utilizzati dipende dalla macchina: si tratta generalmente di 16 bit (interi corti) o 32 bit (interi lunghi).

• La rappresentazione è nota col nome di fixed-point e il punto frazionario è supposto all’estrema destra della sequenza di bit (parte frazionaria nulla).

Page 53: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

53© Piero Demichelis

Rappresentazione di numeri reali

• Le rappresentazioni fin qui considerate hanno il pregio dirappresentare esattamente i numeri (almeno quelli interi) ma richiedono un numero di bit esorbitante quando ilnumero da rappresentare ha valore elevato.

• La rappresentazione dei numeri frazionari che deriva daicodici precedenti, ovvero in fixed point, a causa delle fortiapprossimazioni che impone è usata raramente.

• Generalmente viene utilizzato un apposito codice notocome floating point che consente di rappresentare in un numero limitato di bit grandezze di qualsiasi valore anchese condizionate da approssimazioni più o meno elevate.

Page 54: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

Elementi di Informatica - Aritmetica del calcolatore 54 © A. Valenzano - 1996-2

Rappresentazione di numeri in floating point

Realizza un compromesso tra l'intervallodei valori rappresentati e la precisionedella rappresentazione.Utilizza una notazione del tipo mantissa + esponente dove il numero di bit dedicati

• alla mantissa influisce sulla precisione• all' esponente influisce sull' ampiezza

dell'inter-vallo di valori rappresentabili

Page 55: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

55Elementi di Informatica - Aritmetica del calcolatore 55 © A. Valenzano - 1996-2

La notazione scientifica

• Numeri in virgola fissa su 6 cifre decimali. Intervallo esprimibile:

0 ÷ 999999 (≅ 106)• Numeri in notazione scientifica su 6

cifre. Forma:X.YYY⋅10WW

• Dove la parte intera X esprime la quantità, il numero di cifre della parte frazionaria YYY la precisione, l’esponente WW l’ordine di grandezza.

Page 56: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

56Elementi di Informatica - Aritmetica del calcolatore 56 © A. Valenzano - 1996-2

La notazione scientifica (2)

• Intervallo di valori espressi:0 (0.000⋅100) ÷ 10100 (9.999⋅1099)

• Con 6 cifre, si rappresentano sempre 106 numeri differenti, ma

– Nella rappresentazione in virgola fissa, sono equispaziati

– Nella rappresentazione in virgola mobile, non sono distribuiti uniformemente: vicino allo zero, i numeri differiscono di 10-3; vicino al valore massimo, differiscono di 10-3⋅1099= 1096.

Page 57: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

Elementi di Informatica - Aritmetica del calcolatore 57 © A. Valenzano - 1996-2

Standard IEEE P754

Definisce i formati per la rappresentazione dei numeri in virgola mobile ma anche:

• le conversioni tra formati floating pointdifferenti;

• le conversioni tra numeri f. p. ed interi o numeri rappresentati in codice BCD;

• i risultati delle operazioni aritmetiche;• i metodi di trattamento di situazioni di

eccezione (es. divisione per zero, errori di overflow, under-flow etc.).

Page 58: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

Elementi di Informatica - Aritmetica del calcolatore 58 © A. Valenzano - 1996-2

Single basic format P754 (32 bit)I numeri sono pensati nella forma

normalizzata:X = (-1)s(1.m)2e

dove:

• s è il bit di segno;

• e è l'esponente rappresentato in codice eccesso 127 (cioè esponente vero + 127) su 8 bit ( -126 ≤ e ≤ 127);

Page 59: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

Elementi di Informatica - Aritmetica del calcolatore 59 © A. Valenzano - 1996-2

Single basic format P754 (32 bit)• m è la mantissa rappresentata in forma

normalizzata su 23 bit in modo che il primo bit abbia peso 2-1;(il bit 20 sempre uguale a 1 non viene rappresentato ed è detto hidden bit)

Esempio:

13.2510

va trasformato nella forma normalizzata:

+1101.012 = +1.101012⋅23

Page 60: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

Elementi di Informatica - Aritmetica del calcolatore 60 © A. Valenzano - 1996-2

Struttura della rappresentazione single

basic format

s e m

11.7510 = 1011.112 = 1.01111*23 ⇒s = 0e = 10000010m = 01111....

Esempio: rappresentare 11.7510 in P754 s.b.f.

0 10000010 01111000000000000000000

Page 61: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

Elementi di Informatica - Aritmetica del calcolatore 61 © A. Valenzano - 1996-2

Caratteristiche della rappresentazione P754 su 32

bitRange della rappresentazione: si considerano i valori assoluti dei numeri normalizzati rappresentabili:

Nmax = 1.111... ·2127 = 3.4 · 1038

Nmin = 1.000... ·2-126 = 1.17 · 10-38

Precisione della rappresentazione: due valori rappresentabili e consecutivi differiscono per 2e-23 dove “e” èl’esponente vero (non in codice eccesso 127)

Page 62: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

62Elementi di Informatica - Aritmetica del calcolatore 62 © A. Valenzano - 1996-2

Distribuzione dei numeri in f.p.

1 2 4 8-1-2- 4- 8

1.0..* 2

0 1.0..* 2

1 1.0..* 2

2 1.0..* 2

3

223

numeri 223

numeri

Page 63: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

63Elementi di Informatica - Aritmetica del calcolatore 63 © A. Valenzano - 1996-2

Interpretazione di un numero f.p.

Sia s il bit del segno, e l’esponente, f la parte frazionaria.

• Se e = 0 ed f = 0, il valore è (-1)s⋅0, cioè +0 oppure -0

• Se e = 0 ed f ≠ 0, è una forma denormalizzata (esempio: si possono rappresentare gli interi su 23 bit, ecc.)

Page 64: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

64Elementi di Informatica - Aritmetica del calcolatore 64 © A. Valenzano - 1996-2

Interpretazione di un numero f.p. (2)

• Se 0 < e < 255, è una forma normalizzata e il valore è

(-1)s⋅(1.f)⋅2(e-127)

• Se e = 255 ed f ≠ 0, si rappresenta(-1)s(∞)

cioè un numero infinitamente grande o infinitamente piccolo

Page 65: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

65Elementi di Informatica - Aritmetica del calcolatore 65 © A. Valenzano - 1996-2

Interpretazione di un numero f.p. (3)

• Se e = 255 ed f = 0, non si tratta di un numero valido (not a number, NAN): permette di codificare condizioni particolari, quali operazione non valida, overflow, ecc.

Page 66: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

66Elementi di Informatica - Aritmetica del calcolatore 66 © A. Valenzano - 1996-2

Operazioni in f.p.

Gli operandi sono da riportare nella forma:

±1.xxxxx…x⋅2a

±1.yyyyy…y⋅2b

dove a e b sono gli esponenti eccesso 127

SOMMA – SOTTRAZIONESi eseguono le operazioni con gli algoritmi del modulo e segno.

Page 67: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

67Elementi di Informatica - Aritmetica del calcolatore 67 © A. Valenzano - 1996-2

Operazioni in f.p. (2)

Si devono allineare i numeri rispetto al punto decimale, riportandoli allo stesso esponente. Si fa scorrere a destra il valore minore (in modulo) di un numero di posizioni pari alla differenza degli esponenti.La differenza degli esponenti si può fare direttamente sui valori eccesso 127: (a’+127)-(b’+127) = a’-b’.L’esponente del risultato è quello del modulo maggiore.Potrebbe essere richiesta una ri-normalizzazione del risultato.

Page 68: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

68Elementi di Informatica - Aritmetica del calcolatore 68 © A. Valenzano - 1996-2

Operazioni in f.p. (3)PRODOTTO

Si sommano gli esponenti normalizzati e si sottrae 127: (a’+127) + (b’+127) =(a’+b’+127)+127.Si moltiplicano le mantisse di 24 bit, ottenendo il prodotto su 48 bit: il risultato deve essere troncato ai 24 bit più significativi (precisione di 2-23).Può essere richiesta una ri-normalizzazione: 1.x… ⋅ 1.y… < 1002= 4

Page 69: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

69Elementi di Informatica - Aritmetica del calcolatore 69 © A. Valenzano - 1996-2

Operazioni in f.p. (4)

DIVISIONESi sottraggono gli esponenti normalizzati e si somma 127: (a’+127) - (b’+127) = (a’-b’).Il dividendo, di 24 bit, si estende a 48 bit, inserendo zeri a destra, e si divide per il divisore, di 24 bit: il risultato, di 24 bit, ha la precisione di 2-23.Può essere richiesta una ri-normalizzazione.

Page 70: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

70Elementi di Informatica - Aritmetica del calcolatore 70 © A. Valenzano - 1996-2

Osservazioni sul f.p.

I risultati delle operazioni in f.p. possono dipendere dall’ordine di esecuzione.Esempio

1016 + 2 - 1016

e1016 - 1016 + 2

danno risultati diversi.

Page 71: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

71Elementi di Informatica - Aritmetica del calcolatore 71 © A. Valenzano - 1996-2

Osservazioni sul f.p. (2)

In generale, in f.p. valea + b = a

sea / b > 224 ≅ 16⋅106

Esempio:non ha senso incrementare di uno un valore positivo a se a è molto maggiore di 1.

624 10162 ⋅≅⟩ba 624 10162 ⋅≅⟩ba 624 10162 ⋅≅⟩ba 624 10162 ⋅≅⟩ba 624 10162 ⋅≅⟩ba 624 10162 ⋅≅⟩ba 624 10162 ⋅≅⟩ba 624 10162 ⋅≅⟩ba 624 10162 ⋅≅⟩ba 624 10162 ⋅≅⟩ba 624 10162 ⋅≅⟩ba 624 10162 ⋅≅⟩ba

Page 72: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

72© Piero Demichelis

Floating-point

• E’ basata sul formato esponenziale (notazione scientifica)

N = mantissa ⋅ base esponente

- Ricorda le notazioni:

standard 3.5 × 104 3.5E+4scientifico 0.35 × 105 0.35E+5

• Nei sistemi di elaborazione- Base = 2- Mantissa ed esponente sono rappresentati in binario

Page 73: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

73© Piero Demichelis

Floating-point

• Vantaggi:- grande intervallo di valori rappresentabili- errore relativo fisso

• Svantaggi:- operandi non allineati per cui le operazioni aritmetiche risultano

molto complesse- errore assoluto variabile e dipendente dal valore del numero

• E’ la rappresentazione utilizzata da tutti i calcolatori elettronici per rappresentare i numeri frazionari ed è stata standardizzata dall’IEEE.

Page 74: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

74© Piero Demichelis

Formato IEEE-P754

• Standard IEEE per il floating-point:- Rappresentazione binaria di

mantissaesponentesegno

• Singola precisione: 32 bit (float)

• Doppia precisione: 64 bit (double)

23 bit8 bit

esponentesegno mantissa1 bit

52 bit11 bit

esponentesegno mantissa1 bit

precisione: circa 7 cifre decimali

precisione: circa 17 cifre decimali

Page 75: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

75© Piero Demichelis

Overflow e Underflow

• A causa della precisione variabile è possibile avere erroridi rappresentazione:- numeri troppo grandi: overflow- numeri troppo piccoli: underflow

Esempio: IEEE P754

0-1038 -10-38 10-38 1038

overflow

underflow

Page 76: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

76© Piero Demichelis

Rappresentazioni di dati non numerici

• Qualunque insieme finito di oggetti può essere codificatotramite valori numerici associando ad ogni oggetto un codice (ad esempio un numero intero).

• Nel sistema numerico binario per rappresentare K oggettidistinti occorre un numero minimo di bit pari a:

N = ⎡ log2 K ⎤

Page 77: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

77© Piero Demichelis

Caratteri

• E’ sicuramente il tipo di informazione più scambiata: occorre pertanto una codifica standard.

- la più usata fa riferimento al codice ASCII (American Standard Code for Information Interchange)

- in passato era molto diffuso il codice EBCDIC (Extended BCD Interchange Code)

- codice UNICODE

Page 78: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

78© Piero Demichelis

Codice ASCII

• E’ usato anche nelle telecomunicazioni.

• Usa 8 bit per rappresentare:- i 52 caratteri alfabetici (a ÷ z , A ÷ Z)- le 10 cifre (0 ÷ 9)- i segni di interpunzione (,;:!?&%=+-/ ecc.)- un gruppo di caratteri di controllo tra cui:

CR ( 13 ) Carriage ReturnLF,NL ( 10 ) New Line, Line FeedFF,NP ( 12 ) New Page, Form FeedHT ( 9 ) Horizontal TabVT ( 11 ) Vertical TabNUL ( 0 ) NullBEL ( 7 ) BellEOT ( 4 ) End-Of-Transmission

Page 79: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

79© Piero Demichelis

Codice ASCII

• Ad esempio per rappresentare il messaggio “Auguri a tutti!” è necessaria la seguente sequenza:

01000001 A 00100000 spazio01110101 u 01110100 t01100111 g 01110101 u01110101 u 01110100 t01110010 r 01110100 t01101001 i 01101001 i00100000 spazio 00100001 !01100001 a

Page 80: Rappresentazione di dati numerici - areeweb.polito.it · Sistema binario • La cifra binaria è detta bit parola che deriva dall’unione di due elisioni: binary digit • I bit

Fine Rappresentazione dei dati