Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre...

57
1 Lezione 3: Rappresentazioni Lezione 3: Rappresentazioni

Transcript of Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre...

Page 1: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

11

Lezione 3: RappresentazioniLezione 3: Rappresentazioni

Page 2: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

22

• Sistemi di numerazione posizionaliposizionali:La basebase del sistema di numerazioneLe cifrecifre del sistema di numerazione

Il numero è scritto specificando le cifre in ordine ed il suo valore dipende dalla posizione relativa posizione relativa delle cifre

Esempio:Esempio: Il sistema decimale (Base 10)

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

5641 = 5·103 + 6·102 + 4·101 + 1·100

Posizione: 3 2 1 0

Sistemi di numerazione posizionaliSistemi di numerazione posizionali

Page 3: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

33

• La base definisce il numero di cifre diverse nel sistema di numerazione

• La cifra di minor valore è sempre lo 0; le altre sono, nell’ordine, 1,2,…,B−1; se B>10 occorre introdurre B−10 simboli in aggiunta alle cifre decimali

N = cN = cnnBBnn+c+cnn−−11BBnn−−11+...+c+...+c22BB22+c+c11BB11+c+c00BB00

Un numero frazionariofrazionario N’ si rappresenta come (0,c1c2…cn)B

Un numero interointero N si rappresenta con la scrittura (cncn−1…c2c1c0)B

N’ = cN’ = c11BB−−11+c+c22BB−−22+...+c+...+cnnBB−−nn

ccnn è la cifra più significativacifra più significativa, cc00 la meno significativameno significativa

Sistemi in base BSistemi in base B

Page 4: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

44

• Con n cifre in base B si rappresentano tutti i numeri interi positivi da 0 a Bn−1 (Bn numeri distinti)

Esempio:Esempio: base 10

2 cifre: da 0 a 102−1 = 99

000102….9899

Esempio:Esempio: base 2

2 cifre: da 0 a 22−1 = 3

00011011

102 = 100 valori

22 = 4 valori

Numeri interi senza segnoNumeri interi senza segno

Page 5: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

55

• La base 2 è la più piccola per un sistema di numerazioneLa base 2 è la più piccola per un sistema di numerazione

Cifre: 0 1 Cifre: 0 1 −− bitbit (binary digit) (binary digit)

Esempi:Esempi:

(101101)2 = 1×25 + 0×24 + 1×23 + 1×22 + 0×21 + 1×20 = 32 + 0 + 8 + 4 + 0 + 1 = (45)10

(0,0101)2 = 0⋅2−1 + 1⋅2−2 + 0⋅2−3 + 1⋅2−4 = 0 + 0,25 + 0 + 0,0625 = (0,3125)10

(11,101)2 = 1⋅21 + 1⋅20 + 1⋅2−1 + 0⋅2−2 + 1⋅2−3 = 2 + 1 + 0,5 + 0 + 0,125 = (3,625)10

FormaFormapolinomiapolinomia

Il sistema binario (BIl sistema binario (B==2)2)

Page 6: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

66

• Un bytebyte è un insieme di 8 bit (un numero binario ad 8 cifre)

• Con un byte si rappresentano i numeri interi fra 0 e 28−1 = 255

• È l’elemento base con cui si rappresentano i dati nei calcolatori• Si utilizzano sempre dimensioni multiple (di potenze del 2) del

byte: 2 byte (16 bit), 4 byte (32 bit), 8 byte (64 bit)…

b7b6b5b4b3b2b1b0

00000000000000010000001000000011…………….1111111011111111

28 = 256 valori distinti

Dal bit al byteDal bit al byte

Page 7: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

77

• Si divide ripetutamente il numero interointero decimale per 2 fino ad ottenere un quoziente nullo; le cifre del numero binario sono i resti delle divisioni; la cifra più significativa è l’ultimo resto

Esempio:Esempio: convertire in binario (43)10

43 : 2 = 21 + 121 : 2 = 10 + 110 : 2 = 5 + 0 5 : 2 = 2 + 1 2 : 2 = 1 + 0 1 : 2 = 0 + 1

resti

bit più significativo

(43)10 = (101011)2

Da decimale a binarioDa decimale a binarioNumeri interiNumeri interi

Page 8: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

Trasformazione di un numero in base 10 a numero binario

125 in binario è 1111101

rappresenta 62

rappresenta 31

Etc.

125

125/2=62 resto 1 62/2=31 resto 0 31/2=15 resto 1 15/2=7 resto 1 7/2=3 resto 1 3/2=1 resto 1 1/2=0 resto 1

Page 9: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

99

• Si moltiplica ripetutamente il numero frazionariofrazionario decimale per 2, fino ad ottenere una parte decimale nulla o, dato che la condizione potrebbe non verificarsi mai, per un numero prefissato di volte; le cifre del numero binario sono le parti intere dei prodotti successivi; la cifra più significativa è il risultato della prima moltiplicazione

Esempio:Esempio: convertire in binario (0,21875)10 e (0,45)10

(0,21875)10 = (0,00111)2

0,45 × 2 = 0,90,90 × 2 = 1,80,80 × 2 = 1,60,60 × 2 = 1,20,20 × 2 = 0,4 etc.

(0,45)10 ≈ (0,01110)2

0,21875 × 2 = 0 ,43750,4375 × 2 = 0,8750,875 × 2 = 1,750,75 × 2 = 1,50,5 × 2 = 1,0

Da decimale a binarioDa decimale a binarioNumeri razionaliNumeri razionali

Page 10: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

1010

• Oltre all’espansione esplicita in potenze del 2 − forma polinomiaforma polinomia…

• …si può operare nel modo seguente: si raddoppia il bit più significativo e si aggiunge al secondo bit; si raddoppia la somma e si aggiunge al terzo bit… si continua fino al bit meno significativo

Esempio:Esempio: convertire in decimale (101011)2

bit più significativobit più significativo

(101011)2 = 1×25 + 0×24 + 1×23 + 0×22 + 1×21 + 1×20 = (43)10

1 x 2 = 2 + 0 2 x 2 = 4 + 1 5 x 2 = 10 + 0 10 x 2 = 20 + 1 21 x 2 = 42 + 1 = 43

(101011)2 = (43)10

Da binario a decimaleDa binario a decimale

Page 11: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

1111

• Si verifichino le seguenti corrispondenze: (110010)2=(50)10

(1110101)2=(117)10

(1111)2=(17)10

(11011)2=(27)10

(100001)2=(39)10

EserciziEsercizi

Page 12: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

1212

• Le regole per l’addizione di due bit sono

• L’ultima regola è… (1)2+(1)2 = (10)2 … (1+1=2)10 !!

0 + 0 = 00 + 1 = 11 + 0 = 11 + 1 = 0 con riporto di 1

EsempioEsempio

181

91+90 =

1 11 101011011+01011010 =10110101

riportiriporti

Addizione binariaAddizione binaria

Page 13: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

1313

• Le regole per la sottrazione di due bit sono

• La sottrazione può divenire complicata: quando si ha una richiesta sulla cifra precedente a sinistra, che è uno 0, l’operazione si propaga a sinistra fino alla prima cifra ad 1 del sottraendo

0 − 0 = 0 1 − 0 = 1 1 − 1 = 010 − 1 = 1 con prestito di 1 dalla cifra precedente a sinistra

EsempioEsempio 0 10 1 1 0 0 1 − 1 0 1 =1 0 1 0 0 20

25 − 5 =

Sottrazione binaria Sottrazione binaria −− 1 1

Page 14: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

1414

• La base 16 è molto usata in campo informaticoLa base 16 è molto usata in campo informaticoCifre:Cifre: 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F

Esempio:Esempio:

(3A2F)16 = 3×163 + 10×162 + 2×161 + 15×160 = 3×4096 + 10×256 + 2×16 + 15 = (14895)10

La corrispondenza in decimale delle cifre oltre il 9 èA = (10)10 D = (13)10

B = (11)10 E = (14)10

C = (12)10 F = (15)10

Sistema esadecimaleSistema esadecimale

Page 15: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

1515

• Una cifra esadecimaleesadecimale corrisponde a 4 bit

• Si possono rappresentare numeri binari lunghi con poche cifre (1/4)

• La conversione da binario ad esadecimale è immediata, raggruppando le cifre binarie in gruppi di 4 (da destra) e sostituendole con le cifre esadecimali secondo la tabella precedente

0000 0 1000 80001 1 1001 90010 2 1010 A0011 3 1011 B0100 4 1100 C0101 5 1101 D0110 6 1110 E0111 7 1111 F F corrisponde a 4 bit a 1F corrisponde a 4 bit a 1

0 corrisponde a 4 bit a 00 corrisponde a 4 bit a 0

Da binario a esadecimaleDa binario a esadecimale

Page 16: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

1616

• Un numero binario di 4n bit corrisponde a un numero esadecimale di n cifreEsempio:Esempio: 32 bit corrispondono a 8 cifre esadecimali

1101 1001 0001 1011 0100 0011 0111 1111 D 9 1 B 4 3 7 F

(D91B437F)16

Esempio:Esempio: 16 bit corrispondono a 4 cifre esadecimali0000 0000 1111 1111 0 0 F F

(00FF)16

Dal bit all’hexDal bit all’hex

Page 17: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

1717

• La conversione da esadecimale a binario si ottiene espandendo ciascuna cifra con i 4 bit corrispondentiEsempioEsempio:: convertire in binario il numero esadecimale 0x0x0c8f

Notazione usata in molti linguaggi di programmazione (es. C e Java) per rappresentare numeri esadecimali

0 c 8 f 0000 1100 1000 1111

Il numero binario ha 4 × 4=16 bit

Da esadecimale a binarioDa esadecimale a binario

Page 18: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

1818

Esempi Esempi

(7−9)/2 = −1

(7+9)/2 = 8 È la soluzione!È la soluzione!

Non può essere una base

• Quesito:Quesito: Per quale base B risulterà vera l’uguaglianza

17 + 41 + 22 = 102 ?

Se i numeri sono rappresentati in base B, sappiamo che:

(17)B = 1×B1+7×B0 = B+7

(41)B = 4×B1+1×B0 = 4B+1

(22)B = 2×B1+2×B0 = 2B+2

(102)B = 1×B2+0×B1+2×B0 = B2+2

da cui... B+7+4B+1+2B+2 = 7B+10 = B2+2

⇒ Si ottiene un’equazione di 2° grado: B2 − 7B − 8 = 0

Risolvendo: ∆ = 49+32 = 81

B = (7 ± √∆ )/2 =

Page 19: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

1919

La rappresentazione dei dati e La rappresentazione dei dati e l’aritmetica degli elaboratoril’aritmetica degli elaboratori

Page 20: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

2020

• I numeri interi positivi sono rappresentati all’interno dell’elaboratore utilizzando un multiplo del byte (generalmente 4 o 8 byte)

• Se l’intero si rappresenta con un numero di cifre minore, vengono aggiunti zeri nelle cifre più significativeEsempio:Esempio: 12 viene rappresentato in un byte come…

00001100

Numeri interi positiviNumeri interi positivi

Page 21: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

2121

• Per rappresentare numeri con segno, occorre utilizzare un bit per definire il segno del numero

• Si possono usare tre tecniche di codifica

Modulo e segnoModulo e segno Complemento a 1Complemento a 1 Complemento a 2Complemento a 2

Numeri con segnoNumeri con segno

Page 22: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

2222

• Il bit più significativo rappresenta il segno: 0 per i numeri positivi, 1 per quelli negativi

• Esiste uno zero positivo (00…0) e uno zero negativo (10…0)• Se si utilizzano n bit si rappresentano tutti i numeri compresi

fra −(2n−1−1) e +2n−1−1Esempio:Esempio: con 4 bit si rappresentano i numeri fra −7 (−(23−1)) e +7 (23−1)

0000 +00001 +10010 +20011 +30100 +40101 +50110 +60111 +7

1000 −01001 −11010 −21011 −31100 −41101 −51110 −61111 −7

positivipositivi negativinegativi

Modulo e segnoModulo e segno

Page 23: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

1) Bit e segno1) Bit e segno

• Con tale decodifica non si può utilizzare il Con tale decodifica non si può utilizzare il metodo di somma per colonnametodo di somma per colonna

(es con 3 bit: 101 + 001=??)(es con 3 bit: 101 + 001=??)

• Ci sono due modi per rappresentare lo Ci sono due modi per rappresentare lo zero (es con 3 bit: 000 e 100)zero (es con 3 bit: 000 e 100)

Page 24: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

2) Complemento a uno2) Complemento a uno

• Primo bit riservato per il segno

(0 se positivo, 1 se negativo)

• I numeri non negativi sono quelli rapprentabili utilizzando n-1 bit.

• Per rappresentare I negativi complementiamo la parte positiva a 2 n - 1

Page 25: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

2) Complemento a uno2) Complemento a uno

• Esempio utilizzando 6 bit rappresentiamo -20

2n-1 = 63 1 1 1 1 1 1 -

20=22+24 0 1 0 1 0 0 = -20 1 0 1 0 1 1 = (43

10)

Page 26: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

2) Complemento a uno2) Complemento a uno

• Anche in questo caso due rappresentazioni per Anche in questo caso due rappresentazioni per lo 0lo 0

• Esempio utilizzando 6 bitEsempio utilizzando 6 bit

26-1 = 63 1 1 1 1 1 1 - 0 0 0 0 0 0 0 =

- 0 1 1 1 1 1 1

Page 27: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

2727

• Zero ha due rappresentazioni: 00000000 e 10000000

La somma bit a bit funziona “quasi sempre”

11001 + (−6)11010 = (−5)

10011 10011 (−12)

00110 + (6)10101 = (−10)11011 (−4)

Complemento a 1Complemento a 1

Page 28: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

3) Complemento a due3) Complemento a due

• Rappresentazione che permette di eseguire le operazioni in modo semplice

• Rappresentazione univoca dello zero

Page 29: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

2929

Complemento a 2Complemento a 2

• Il complemento a 2 di un numero binario (N)2 a n cifre è il numero

• Il complemento a 2 si calcola… Effettuando il complemento a 1 del numero di partenza (negazione di

ogni cifra): si trasforma ogni 0 in 1 e ogni 1 in 0 Aggiungendo 1 al numero ottenuto

• Oppure: a partire da destra, lasciando invariate tutte le cifre fino al primo 1 compreso, quindi invertendo il valore delle rimanenti

2n−(N)2 = 10……0−(N)2

{ n zeri

100000000011111111− 01010111 10101000

10101001

28

28−1N28−1−N

28−1−N+1

01010111

10101000

10101001

complemento a 1complemento a 1

+ 1

Page 30: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

3030

• I numeri positivinumeri positivi sono rappresentati (come) in modulo e segno• I numeri negativinumeri negativi sono rappresentati in complemento a 2 ⇒ la cifra

più significativa ha sempre valore 1• Lo zero è rappresentato come numero positivo (con una sequenza

di n zeri)• Il campo dei numeri rappresentabili varia da −2n−1 a +2n−1−1

Esempio:Esempio: numeri a 4 cifre

Interi in complemento a 2Interi in complemento a 2

0000 +00001 +10010 +20011 +30100 +40101 +50110 +60111 +7

1000 −81001 −71010 −61011 −51100 −41101 −31110 −21111 −1

Nota:Nota: 0111 +7 1000 −8

Page 31: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

Primo bit per il segno (0 se positivo, 1 se negativo)Primo bit per il segno (0 se positivo, 1 se negativo)

I numeri negativi rappresentabili sono quindi quelliI numeri negativi rappresentabili sono quindi quellirappresentabili con n-1 bit, cioè nell'intervallo [0,2rappresentabili con n-1 bit, cioè nell'intervallo [0,2n-1n-1-1] e-1] eottenibili complementando il numero a (2ottenibili complementando il numero a (2nn).).

Esempio con 6 bit:Esempio con 6 bit:(2n)=(26)=64 1 0 0 0 0 0 0 - 20=22+24 0 1 0 1 0 0 = -20 0 1 0 1 1 0 0

3) Complemento a due3) Complemento a due

Bit di overflow che viene scaricato

Page 32: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

3) Complemento a due3) Complemento a due

• Somma per colonna:Somma per colonna:

(esempio con 6 bit)(esempio con 6 bit)

-110 1 1 1 1 1 1 +

110 0 0 0 0 0 1=

010 0 0 0 0 0 0

Page 33: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

Riassumendo: codifica e decodifica• Intero positivo x complemento a due su n bit:

se x ≤ 2n-1-1 scrivo (x)2 , altrimenti non e’ rappresentabile Esempio: n=4, x=5, (5)2=0101, x=8>23-1=7

• Intero negativo –x complemento a due su n bit: se –x ≥ -2n-1 calcolo 2n+(-x)=y e scrivo (y)2 Esempio: n=4, –x=-3 y=24-3=16-3=13 (13)2=1101

• Compl. a due positivo (0 = bit + significativo) decimale: decodifica dal binario Esempio: n=4, 0111=(7)2

• Compl. a due negativo (1 = bit + significativo)decimale: decodifico dal binario a decimale, ottengo y e poi sottraggo y-2n Esempio 1010 = (10)2 10-16=-6

Page 34: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

3434

• Utilizzando la rappresentazione in complemento a 2, addizione e sottrazione sono trattate come un’unica operazione

Si calcola il complemento a 2 di N2

Si somma N1 con il complemento a 2 di N2

Si trascura il bit più significativo del risultato

Esempio:Esempio: (010001)2−(000101)2 = (17)10−(5)10

010001 + 1110111001100 (12)10

N1−N2 = N1+(2n−N2)−2n

complemento a 2 di N2: rappresentazione di (−N2)

si trascura il bit si trascura il bit nn ++11{

Sottrazione binaria in complemento a 2Sottrazione binaria in complemento a 2

Page 35: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

3535

• L’overflowoverflow si ha quando il risultato di un’operazione non è rappresentabile correttamente con n bit

• Per evitare l’overflow occorre aumentare il numero di bit utilizzati per rappresentare gli operandi

Esempio:Esempio: 5 bit → [−16,+15]

01110 +01010 =11000

14 +10 =24

11000 + 10110 =101110

−8 +−10 =−18−8 +14

OverflowOverflow

Page 36: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

3636

Rappresentazione dei numeri in Rappresentazione dei numeri in virgola mobilevirgola mobile

Page 37: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

3737

• Le regole per la moltiplicazione di due bit sono

• Moltiplicare per 2n corrisponde ad aggiungere n zeri in coda al moltiplicando

0 × 0 = 00 × 1 = 01 × 0 = 01 × 1 = 1

EsempioEsempio 1100111 × 101 1100111 0000000 11001111000000011

110011 × 10000 = 11001100000000× 16 = 24

81651

Moltiplicazione binariaMoltiplicazione binaria

Page 38: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

• La rappresentazione dei numeri in virgola mobile è in relazione con la notazione scientifica notazione scientifica (es. 1.2×102=120)

• La IEEE ha previsto uno standard per la rappresentazione in virgola mobile

3838

singola precisionesingola precisione (32 bit = 4 byte) doppia precisionedoppia precisione (64 bit = 8 byte) quadrupla precisionequadrupla precisione (128 bit = 16 byte)

Singola precisione031 2223

23 bit8 bit

MantissaMantissa(o CaratteristicaCaratteristica)

SegnoSegno

Il valore è(−1)S 1.M×2E−127 se E≠0(−1)S 0.M×2−126 se E=0

EsponenteEsponente

Numeri in virgola mobileNumeri in virgola mobile

Page 39: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

• La rappresentazione dei numeri in virgola mobile è in relazione con la notazione scientifica notazione scientifica (es. 1.2×102=120)

• La IEEE ha previsto uno standard per la rappresentazione in virgola mobile

3939

singola precisionesingola precisione (32 bit = 4 byte) doppia precisionedoppia precisione (64 bit = 8 byte) quadrupla precisionequadrupla precisione (128 bit = 16 byte)

Singola precisione031 2223

23 bit8 bit

MantissaMantissa(o CaratteristicaCaratteristica)

SegnoSegno

Il valore è(−1)S 1.M×2E−127 se E≠0(−1)S 0.M×2−126 se E=0

EsponenteEsponente

Numeri in virgola mobileNumeri in virgola mobile

Lo IEEE, acronimo di Institute of Electrical and Electronic Engineers (in italiano: Istituto degli ingegneri elettrici ed elettronici) è un'associazione internazionale di scienziati professionisti con l'obiettivo della promozione delle scienze tecnologiche

Page 40: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

Rappresentazione in virgola mobileESPONENTE•Gli otto bit dell’esponente sono numeri interi con segno (l’esponente può avere segno positivo o negativo), perciò è possibile utilizzare le diverse notazioni per rappresentarli (bit e segno, complemento a uno, complemento a due).

•Tuttavia, per consentire un confronto più agevole dei numeri reali, lo standard attualmente utilizzato è lo IEEE 754, ufficialmente: IEEE Standard for Binary Floating-Point Arithmetic (ANSI/IEEE Std 754-1985) o anche IEC 60559:1989, Binary floating-point arithmetic for microprocessor systems).

• Lo standard prevede di rappresentare l’esponente come un intero positivo (escludendo le sequenze di bit 00000000 e 11111111, che sono riservate) e di sotrarre 127 all’intero positivo rappresentato.

Esponente e= e8e7e6e5e4e3e2e1-127

Page 41: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

4141

• Il numero più grande rappresentabile è 2128×(2−2−23)≈2129≈6.81×1038

• Il più piccolo numero positivo è 2−126×2−23=2−149≈1.4×10−45

• In totale si rappresentano 232 numeri distinti, metà positivi, metà negativi

• Circa metà dei numeri sono compresi fra −1 e 1 (E−127<0)

0 11111111 11111111111111111111111 2255−127 1.111111111111111111111111

0 00000000 00000000000000000000001 2−126 0.00000000000000000000001

0 1 2 4

223 valori223 valori 223 valori223 valori

0.50.25

Singola precisioneSingola precisione

Page 42: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

Rappresentazione in v. mobileRappresentazione in v. mobile

s e* m 1 8 23

N= s 2 e* - 127 x 1.m

Page 43: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

EsempiEsempi

0 10000011 00111001011000000000000

10000011 = 131, quindi esponente = 131-127 = 4.Quindi24 × 1.00111001011 = 10011.1001011= 24 + 21 + 20 + 2-1 + 2-4 + 2-6 + 2-7

= 19+ 2-1 + 2-4 + 2-6 + 2-7

= 19.5859375

Page 44: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

EsercizioFornire la rappresentazione in virgola mobile normalizzata del valore

10.543 avendo a disposizione 8 bit per l’esponente e 8 per la mantissa.

(1) Rappresentiamo 10 in binario10 = 23 + 21 = (1010)2

(2) Rappresentiamo 0.543 in binario0.543 × 2 = 1.0860.086 × 2 = 0.1720.172 × 2 = 0.344 Quindi: 0.543 = (0.100010...)2

0.344 × 2 = 0.6880.688 × 2 = 1.3760.376 × 2 = 0.752

Page 45: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

(3) Riassumendo:10.543 = (1010.100010...)2

(4) Rappresentazione normalizzata1.01010001 × 23 = 1010.10001

(5) Rappresentiamo l'esponente 3:e=3=e*-127, quindi e*=130130 = (10000010)2

Quindi

0 10000010 01010001

Page 46: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

Rappresentazione in virgola mobileCosa viene rappresentato nel campo esponente con lesequenze di bit 00000000 (0) e 11111111 (255)?

I numeri subnormalizzati sono i numeri reali “piccoli”,ovvero minori in valore assoluto del più piccolo numerorappresentabile utilizzando la notazione normalizzata:Per un numero normalizzato: N = s 2e*-127 ×1.mPer un numero denormalizzato: N = s 2-126 ×0.m

Categoria esponente mantissa

zeri 0 0

Numeri subnormalizzati 0 Non zero

Numeri normalizzati 1-254 qualunque

Infiniti 255 0

NAN (not a number) 255 Non zero

Es div di 0 per 0

Page 47: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

Rappresentazione in virgola mobileCosa viene rappresentato nel campo esponente con lesequenze di bit 00000000 (0) e 11111111 (255)?

I numeri subnormalizzati sono i numeri reali “piccoli”,ovvero minori in valore assoluto del più piccolo numerorappresentabile utilizzando la notazione normalizzata:Per un numero normalizzato: N = s 2e*-127 ×1.mPer un numero denormalizzato: N = s 2-126 ×0.m

Categoria esponente mantissa

zeri 0 0

Numeri subnormalizzati 0 Non zero

Numeri normalizzati 1-254 qualunque

Infiniti 255 0

NAN (not a number) 255 Non zero

Es div di 0 per 0

NAN=Not a numer, cioè il risultatoDi una operazione eseguita su operandi

Non validi.

Page 48: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

Standard IEEE-754 La rappresentazione dell'esponente in eccesso 127 consente una maggior facilità diprogettazione dei circuiti della ALU: il confrontoavviene, a parte il segno, confrontandosemplicemente il resto del numerolessicograficamente.− es: il primo numero è più piccolo del secondo 12.34E-03 = 0 01111000 10010100010110110110110 32.87E-02 = 0 01111101 01010000100101101011110

Page 49: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

4949

• L’aritmetica “interna” degli elaboratori differisce notevolmente dall’aritmetica classica

• Sebbene le stesse operazioni possano essere realizzate secondo modalità diverse su elaboratori diversi, si riscontrano alcune caratteristiche comuni:

Rappresentazione binaria dei numeriRappresentazione binaria dei numeri

Rango finito dei numeri rappresentabiliRango finito dei numeri rappresentabili

Precisione finita dei numeriPrecisione finita dei numeri

Operazioni espresse in termini di operazioni più sempliciOperazioni espresse in termini di operazioni più semplici

L’aritmetica degli elaboratori L’aritmetica degli elaboratori −− 1 1

Page 50: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

5050

• Rango finito dei numeri rappresentabiliRango finito dei numeri rappresentabili

Qualunque sia la codifica utilizzata, esistono sempre il più grande ed il più piccolo numero rappresentabile

I limiti inferiore e superiore del rango di rappresentazione dipendono sia dal tipo di codifica, sia dal numero di bit utilizzati

Se il risultato di un’operazione non appartiene al rango dei numeri rappresentabili, si dice che si è verificato un overflow (un underflowunderflow, più precisamente, se il risultato è più piccolo del più piccolo numero rappresentabile)

L’aritmetica degli elaboratori L’aritmetica degli elaboratori −− 2 2

Page 51: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

5151

• Precisione finita dei numeriPrecisione finita dei numeri La precisioneprecisione della rappresentazione di un numero

frazionario è una misura di quanto essa corrisponda al numero che deve essere rappresentato

Negli elaboratori, i numeri frazionari sono rappresentati in virgola mobile (floating–pointfloating–point), utilizzando un numero finito di bit

È plausibile che un numero reale non ammetta una rappresentazione finita, quindi dovrà essere codificato in maniera approssimata

Negli elaboratori si rappresentano soltanto numeri razionali (fino ad una data precisione)

L’aritmetica degli elaboratori L’aritmetica degli elaboratori −− 3 3

Page 52: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

5252

• Operazioni espresse in termini di operazioni più sempliciOperazioni espresse in termini di operazioni più semplici La maggior parte degli elaboratori non possiede circuiti in

grado di eseguire direttamente tutte le operazioni: La sottrazione si realizza per mezzo di una complementazione e di

un’addizione La moltiplicazione si realizza per mezzo di una successione di

addizioni e di shift shift (traslazioni) La divisione si realizza per mezzo di una successione di shift e

sottrazioni Le operazioni più semplici sono eseguite direttamente da

appositi circuiti (in hardwarehardware); le operazioni più complesse sono realizzate mediante l’esecuzione di successioni di operazioni più semplici, sotto il controllo di programmi appositamente realizzati, e generalmente memorizzati permanentemente (in firmwarefirmware)

L’aritmetica degli elaboratori L’aritmetica degli elaboratori −− 4 4

Page 53: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

5353

• Oltre ai numeri, molte applicazioni informatiche elaborano caratteri (simboli)

• Gli elaboratori elettronici trattano numeri Si codificano i caratteri e i simboli per mezzo di numeriSi codificano i caratteri e i simboli per mezzo di numeri

• Per poter scambiare dati (testi) in modo corretto, occorre definire uno standard di codifica

A 01000001

3 00110011

$ 00100100

Codifica dei caratteri alfabetici Codifica dei caratteri alfabetici −− 1 1

Page 54: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

5454

• Ovvero… quando si scambiano dati, deve essere noto il tipo di codifica utilizzato

• La codifica deve prevedere le lettere dell’alfabeto, le cifre numeriche, i simboli, la punteggiatura, i caratteri speciali per certe lingue (æ, ã, ë, è,…)

• Lo standard di codifica più diffuso è il codice ASCIIcodice ASCII, per American Standard Code for Information InterchangeAmerican Standard Code for Information Interchange

Codifica dei caratteri alfabetici Codifica dei caratteri alfabetici −− 2 2

Page 55: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

5555

• Definisce una tabella di corrispondenza fra ciascun carattere e un codice a 7 bit7 bit (128 caratteri)

• I caratteri, in genere, sono rappresentati con 1 byte1 byte (8 bit); i caratteri con il bit più significativo a 1 (quelli con codice dal 128 al 255) rappresentano un’estensione della codifica

• La tabella comprende sia caratteri di controllocaratteri di controllo (codici da 0 a 31) che caratteri stampabilicaratteri stampabili

• I caratteri alfabetici/numerici hanno codici ordinati secondo l’ordine alfabetico/numerico

A 65B 66…….Y 89Z 90

a 97b 98…….y 121z 122

0 481 49…….8 569 57

cifrecifre maiuscole minuscolemaiuscole minuscole

Codifica ASCIICodifica ASCII

Page 56: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

5656

• I caratteri di controllo (codice da 0 a 31) hanno funzioni speciali• Si ottengono o con tasti specifici o con una sequenza CtrlCtrl++caratterecarattere

Ctrl Dec Hex Code Nota^@ 0 0 NULL carattere nullo^A 1 1 SOH partenza blocco…… … … …… …………………^G 7 7 BEL beep^H 8 8 BS backspace^I 9 9 HT tabulazione orizzontale^J 10 A LF line feed (cambio linea)^K 11 B VT tabulazione verticale^L 12 C FF form feed (alim. carta)^M 13 D CR carriage return (a capo)…… … … …… ……………………^Z 26 1A EOF fine file^[ 27 1 B ESC escape…… … … …… ………^_ 31 1F US separatore di unità

Caratteri di controllo ASCIICaratteri di controllo ASCII

Page 57: Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre diverse nel sistema di numerazione • La cifra di minor valore è sempre lo 0;

5757

Tabella ASCII estesaTabella ASCII estesa