Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre...
Transcript of Lezione 3: Rappresentazioniaceccato/Intro_1213/Lezione3...3 • La base definisce il numero di cifre...
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