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

Preview:

Citation preview

11

Lezione 3: RappresentazioniLezione 3: Rappresentazioni

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

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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 =

1919

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

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

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

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

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)

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

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)

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

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

3) Complemento a due3) Complemento a due

• Rappresentazione che permette di eseguire le operazioni in modo semplice

• Rappresentazione univoca dello zero

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

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

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

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

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

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

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

3636

Rappresentazione dei numeri in Rappresentazione dei numeri in virgola mobilevirgola mobile

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

• 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

• 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

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

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

Rappresentazione in v. mobileRappresentazione in v. mobile

s e* m 1 8 23

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

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

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

(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

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

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.

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

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

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

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

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

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

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

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

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

5757

Tabella ASCII estesaTabella ASCII estesa

Recommended