Sei sulla pagina 1di 49

DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

INFORMATICA (sezione A-K)


Ingegneria Civile

Rappresentazione
dell’Informazione
Andrea Damiani
Problema della rappresentazione
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Come vengono gestite le informazioni in un calcolatore?


§ Numeri interi
§ Numeri con la virgola
§ Caratteri
§ ...

2
Rappresentazione unaria
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• La rappresentazione unaria è sicuramente la codifica (basata


su un sistema additivo) più semplice dei numeri
§ La barretta I rappresenta il numero 1
§ La sequenza IIIIII denota il numero 6 e così via
• La dimensione della rappresentazione cresce in modo lineare
con il numero da rappresentare
• Impraticabile per gestire numeri grandi

3
I numeri romani
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• È un altro sistema additivo


• Minimizza la dimensione della rappresentazione rispetto alla
rappresentazione unaria: simboli per multipli di 5
• Alfabeto: {I V X L C D M}
• Numeri naturali: combinazioni di tali simboli. Per evitare di
usare nuovi simboli 4 viene codificato come 5-1 scritto IV ecc.
• Problemi con numeri non multipli di 5 e numeri grandi
§ 19 rappresentato da XIX
§ 1281 rappresentato da MCCLXXXI
§ 50.000 rappresentato da una sequenza di 50 M

4
Rappresentazione decimale
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Codifica posizionale basata sul numero 10


• Alfabeto: {0 1 2 3 4 5 6 7 8 9}
• I numeri si leggono da sinistra a destra e sono associati a
potenze di 10 (mille, diecimila, ecc.)
• Es. la sequenza ‘5312’ rappresenta il numero
§ 5 x 103 + 3 x 102 + 1 x 101 + 2 x 100
• La notazione posizionale può essere utilizzata in qualsiasi
altra base

5
Codifica BINARIA
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Usata dal calcolatore per tutte le informazioni


§ Alfabeto: { 0, 1 }
§ BIT (“BInary digIT”):
• unità elementare di informazione
§ Facile da implementare: dispositivi che assumono due stati
• Acceso/spento
• Due valori di tensione: Vdd e Vgnd
• Numeri binari naturali:
la sequenza di n bit bi (cifre binarie):
bn -1 bn-2 … b0, essendo bi Î {0, 1}
rappresenta in base 2 il valore:
bn -1 ´2n -1 + bn-2´2n-2 + … + b0´20

6
Numeri binari naturali
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Con n bit (n ³1) codifichiamo 2n numeri nell’intervallo [0; 2n-1]


• Con 1 Byte (cioè una sequenza di 8 bit):
§ 00000000bin = 0dec
§ 00001000bin = 1 ´ 23 = 8dec
§ 00101011bin = 1 ´ 25 + 1 ´ 23 + 1 ´ 21 + 1 ´ 20 = 43dec
§ 11111111bin = Sn = 0,1,2,3,4,5,6,7 1 ´ 2n = 255dec
• Conversione bin->dec e dec->bin
§ bin->dec: Si 2i ´ bi : 11101bin = (24+23+22+20)= 29dec
§ dec->bin: metodo dei resti

7
Conversione da decimale a binario naturale
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

Cifra meno
• Si calcolano i resti delle divisioni per significativa
due:
1. Stabilire se il numero sia pari (resto 0) 19 :2®1
oppure dispari (resto 1), e annotare il resto 9 :2®1
2. Dividere per 2 il numero (trascurando il 4 :2®0
resto) 2 :2®0
3. Ripartire dal punto 1. fino a ottenere 0 1 :2®1
come risultato della divisione 0 Cifra più
significativa

• Questo approccio è chiamato metodo


dei resti 19dec=10011bin

8
Conversione da decimale a binario naturale
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

29 : 2 = 14 (1) 76 : 2 = 38 (0)
14 : 2 = 7 (0) 38 : 2 = 19 (0)
7:2= 3 (1) 19 : 2 = 9 (1)
3:2= 1 (1) 9:2= 4 (1)
1:2= 0 (1) 4:2= 2 (0)
2:2= 1 (0)
1:2= 0 (1)
29dec = 11101bin

76dec = 1001100bin
76 = 19x4 = 1001100
Per raddoppiare, in base due, si aggiunge
uno zero in coda, così come si fa in base
dieci per decuplicare

9
Conversioni rapide bin à dec
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• In binario si definisce una notazione abbreviata, sulla falsariga del sistema


metrico-decimale:
K = 210 = 1.024 » 103 (Kilo)
M = 220 = 1.048.576 » 106 (Mega)
G = 230 = 1.073.741.824 » 109 (Giga)
T = 240 = 1.099.511.627.776 » 1012 (Tera)
• È curioso (benché non sia casuale) come K, M, G e T in base 2 abbiano
valori molto prossimi ai corrispondenti simboli del sistema metrico
decimale, tipico delle scienze fisiche e dell’ingegneria
• L’errore risulta < 10 %

10
Conversioni rapide bin à dec: esempi
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• 224 = 24+20 = 16 M, leggi 16 Mega » 16 milioni


• 235 = 25+30 = 32 G, leggi 32 Giga » 32 miliardi
• 248 = 28+40 = 256 T, leggi 256 Tera » 256 bilioni
= 28+10+30 = 256 K G » 256 mila miliardi
• 232 = 22+30 = 4 G, leggi 4 Giga » 4 miliardi

11
Lunghezza della rappresentazione binario naturale
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Qual è il numero minimo di bit che serve per rappresentare in


binario naturale un dato valore espresso in notazione
decimale?
• # di bit = élog2 (valore+1)ù
• Esempio: élog2 (74dec+1) ù = é6,2…ù = 7 bit

• In generale: élogB (valore+1)ù = # di cifre per rappresentare il


valore in base B
• Esempio: élog10 (74dec+1)ù = é1,8…ù = 2 cifre

12
Aumento e riduzione dei bit in binario naturale
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Aumento dei bit


§ Premettendo in modo progressivo un bit 0 a sinistra, il valore del
numero non muta
4dec = 100bin = 0100bin = 00100bin = … 000000000100bin
5dec = 101bin = 0101bin = 00101bin = … 000000000101bin
5dec = 05dec = 005dec = … 0000000005dec
• Riduzione dei bit
§ Cancellando in modo progressivo un bit 0 a sinistra, il valore del
numero non muta, ma bisogna arrestarsi quando si trova un bit 1!
7dec = 00111bin = 0111bin = 111bin STOP !
2dec = 00010bin = 0010bin = 010bin = 10bin STOP !

13
Operazioni con numeri binari naturali
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Algoritmo di “addizione a propagazione dei riporti”


• È l’algoritmo decimale elementare, adattato alla base 2

• Addizione naturale (a 8 bit):

Pesi 7 6 5 4 3 2 1 0
Riporto 1 1 1
Addendo 1 0 1 0 0 1 1 0 1 + 77dec
Addendo 2 1 0 0 1 1 1 0 0 = 156dec

Somma 1 1 1 0 1 0 0 1 233dec

14
Operazioni con numeri binari naturali
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• L’overflow si verifica quando il risultato di un’operazione non


può essere rappresentato sul numero di bit a disposizione
• Nella somma tra numeri naturali l’overflow si verifica quando
la somma dei bit più significativi genera un riporto

Pesi 7 6 5 4 3 2 1 0
Riporto 1 1 1 1 1 1
Riporto Addendo 1 0 1 1 1 1 1 0 1 + 125dec
“perduto”
Addendo 2 1 0 0 1 1 1 0 0 = 156dec
Somma 0 0 0 1 1 0 0 1 25dec !

overflow risultato errato!

15
Operazioni con numeri binari naturali
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• L’operazione di sottrazione è adattata allo stesso modo


§ Il secondo operando deve essere minore del primo
§ Al posto dei riporti si utilizzano i prestiti

• Sottrazione naturale (a 8 bit):

Pesi 7 6 5 4 3 2 1 0
Prestito 10 1 10 10

Sottraendo 1 0 1 0 0 1 1 0 - 166dec
Sottrattore 0 1 0 0 1 1 0 1 = 77dec

Differenza 0 1 0 1 1 0 0 1 89dec

16
Numeri interi relativi in modulo e segno
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Necessità: nel computer il segno di un numero deve essere


rappresentato in qualche modo con cifre binarie!

• Numeri binari interi relativi in modulo e segno (m&s)


§ Il primo bit a sinistra rappresenta il segno del numero (bit di segno), i
bit rimanenti rappresentano il valore
• 0 per il segno positivo
• 1 per il segno negativo
• Con n bit (n ³2) codifichiamo 2n numeri nell’intervallo
(-2n-1, 2n-1)
• Esempi con n = 9 (8 bit + un bit per il segno)
§ 000000000m&s = + 0 = 0dec
§ 000001000m&s = + 1 ´ 23 = 8dec
§ 100001000m&s = - 1 ´ 23 = -8dec
§ … e così via …

17
Lunghezza della rappresentazione m&s
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Qual è il numero minimo di bit che serve per rappresentare in


binario modulo e segno un dato valore espresso in notazione
decimale?
• #bit = élog2 (valore+1)ù +1

• Esempio: élog2 (74dec+1) ù +1 = é6,2…ù+1 = 8 bit

18
Osservazioni sulla rappresentazione m&s
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Il bit di segno è applicato al numero rappresentato, ma non fa


propriamente parte del numero in quanto tale
§ Il bit di segno non ha significato numerico
• Distaccando il bit di segno, i bit rimanenti rappresentano il
valore assoluto del numero (in binario naturale)
• L’estensione del numero di bit della codifica si effettua
aggiungendo/togliendo zeri dopo la prima cifra da sinistra (con
le stesse regole dei numeri binari naturali)
• Inefficiente: due codifiche per lo 0 (+0 e -0)
• Complessità nell’implementazione degli operatori (sottrazione)

19
Operazioni con numeri binari m&s
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Somma di due numeri con stesso segno


§ Si sommano i valori assoluti dei due numeri (sono due numeri naturali)
§ Si aggiunge al risultato il segno dei due operandi
• Somma di due numeri con segno discorde
§ Si effettua la sottrazione tra il valore assoluto più grande e quello più
piccolo (sono due numeri naturali)
§ Si aggiunge al risultato il segno dell’operando con valore assoluto
maggiore
• La sottrazione funziona in modo simile
§ Si inverte il segno del secondo operando
§ Si esegue la somma secondo le regole mostrate sopra

20
Rappresentazione binaria in complemento a 2 (C2)
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Numeri interi relativi in complemento a 2: il C2 è un sistema


binario, ma il primo bit (quello a sinistra, il più significativo) ha
peso negativo, mentre tutti gli altri bit hanno peso positivo
• La sequenza di bit:
bn -1 bn-2 … b0
rappresenta in C2 il valore:
bn -1 ´(-2n-1)+ bn-2´2n-2 + … + b0´20
• Il bit più a sinistra è ancora chiamato bit di segno

21
Esempi di numeri a 3 Bit in C2
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• 000C2 = –0´22 + 0´21 + 0´20 = 0dec


• 001C2 = –0´22 + 0´21 + 1´20 = 1dec
• 010C2 = –0´22 + 1´21 + 0´20 = 2dec
• 011C2 = –0´22 + 1´21 + 1´20 = 2+1 = 3dec
• 100C2 = –1´22 + 0´21 + 0´20 = -4dec
• 101C2 = –1´22 + 0´21 + 1´20 = -4+1 = -3dec
• 110C2 = –1´22 + 1´21 + 0´20 = -4+2 = -2dec
• 111C2 = –1´22 + 1´21 + 1´20 = -4+2+1 = -1dec

N.B.: in base al bit di segno il numero zero è considerato positivo

22
Confronto tra interi relativi in m&s e in C2
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Se si utilizza 1 Byte: da –128 a 127


dec. 127 m&s 01111111 C2 01111111
126 01111110 01111110
... ... ...
2 00000010 00000010 L’intervallo
1 00000001 00000001 rappresentato
+0 00000000 00000000 dal
-0 10000000 - complemento
-1 10000001 11111111 a2è
-2 10000010 11111110 asimmetrico
... ... ...
-126 11111110 10000010
-127 11111111 10000001
-128 - 10000000
• In altre parole, la rappresentazione binaria C2 di un numero
negativo N su m bit si ottiene eseguendo la conversione in binario
naturale di 2m – |N|
• Per esempio per N= – 1 su 8bit abbiamo 28 – 1=255dec=11111111bin
23
Invertire un numero in C2
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• L’inverso additivo (o opposto) di un numero rappresentato in


C2 si ottiene:
1. Invertendo (negando) ogni bit del numero (0->1 e 1->0)
2. Sommando 1 alla posizione meno significativa
• Esempio:
01011C2 = 1´23+1´21+1´20 = 8+2+1 = 11dec
10100 + 1 = 10101C2 = -1´24+1´22 +1´20 = -16+4+1 = -11dec
• Con due applicazioni dell’algoritmo si riottiene il numero
iniziale –(–A) = A
§ Lo zero in C2 è (correttamente) opposto di se stesso ( –0 = 0 )

24
Conversione da decimale a C2
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Se Ddec ³ 0:
1. Convertire Ddec in binario naturale
2. Aggiungere il bit 0 in testa alla sequenza di bit ottenuta
§ Esempio: 154dec Þ 10011010bin Þ 010011010C2
• Se Ddec < 0:
1. Trascurare il segno e converti Ddec in binario naturale
2. Aggiungere il bit 0 in testa alla sequenza di bit ottenuta
3. Calcolare l’opposto del numero così ottenuto, secondo la procedura
di inversione in C2
§ Esempio: -154dec Þ 154dec Þ 10011010bin Þ
Þ 010011010bin Þ 101100101 + 1 Þ 101100110C2
• Con n bit (n ³2) codifichiamo 2n numeri nell’intervallo
[-2n-1, 2n-1)
• Occorrono 9 bit sia per 154dec che per -154dec

25
Lunghezza della rappresentazione C2
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Qual è il numero minimo di bit che serve per rappresentare in


binario complemento a 2 un dato valore espresso in
notazione decimale?
• Se valore ³ 0 allora #bit = élog2 (valore+1)ù +1
• Se valore < 0 allora #bit = élog2 (abs(valore))ù +1

• Esempio: élog2 74decù+1 = é6,2…ù+1 = 8 bit

26
Osservazioni sul C2
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Il segno è incorporato nel numero rappresentato in C2, non è


semplicemente applicato (come in m&s)
• Si può eseguire l’estensione del numero di bit della codifica
replicando il bit più a sinistra
§ La riduzione si può effettuare fino a che non si trova una sequenza 10
o 01 poiché il primo bit rappresenterà il segno
• Il bit più significativo rivela il segno: 0 per numero positivo, 1
per numero negativo (il numero zero è considerato positivo),
ma…
• Se il numero è negativo, NON si può distaccare il bit più
significativo e dire che i bit rimanenti rappresentano il valore
assoluto del numero
• Implementazione hardware della sottrazione è semplificata

27
Operazioni con numeri in C2
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• L’addizione di numeri in complemento a 2 è identico a quello


dei numeri binari naturali (il bit di segno è elaborato come gli
altri bit)
• Somma di due numeri a 8 bit:
Pesi 7 6 5 4 3 2 1 0
Riporto 1 1 1
Addendo 1 0 1 0 0 1 1 0 1 + 77dec
Addendo 2 1 0 0 1 1 1 0 0 = -100dec
Somma 1 1 1 0 1 0 0 1 -23dec

• La sottrazione viene eseguita con l’operazione di somma:


A – B = A + (– B)

28
Operazioni con numeri in C2
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

overflow
nessun
riporto Pesi 7 6 5 4 3 2 1 0
“perduto” Riporto 1 1 1 1
Addendo 1 0 1 0 0 1 1 0 1 + 77dec
Addendo 2 0 1 0 1 1 1 0 0 = 92dec

Somma 1 0 1 0 1 0 0 1 -87dec !

risultato errato!
Overflow:
risultato negativo!

29
Rilevare l’overflow in C2
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Se gli addendi sono tra loro discordi (di segno diverso) non si
verifica mai
• Se gli addendi sono tra loro concordi, si verifica se e solo se il
risultato è discorde
§ addendi positivi ma risultato negativo
§ addendi negativi ma risultato positivo

30
Riporto e overflow in C2
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Si ha overflow quando il risultato corretto dell’addizione


eccede il potere di rappresentazione dei bit a disposizione
§ La definizione di overflow non cambia

• Nelle operazioni su numeri C2 l’overflow non ha alcuna


relazione con il riporto
• Si può avere overflow senza “riporto perduto”
§ Capita quando da due addendi positivi otteniamo un risultato
negativo, come nell’esempio precedente
• Si può avere un “riporto perduto” senza overflow
§ Può essere un innocuo effetto collaterale
§ Capita quando due addendi discordi generano un risultato positivo (si
provi a sommare +12 e -7)

31
Numeri frazionari
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• I numeri frazionari compresi tra 0 e 1 possono essere


rappresentati con la sequenza di bit
0,b - 1 b - 2 … b- n essendo bi Î {0, 1}
che rappresenta in base 2 il valore:
b- 1´2-1 + b-2´2-2 + … + b - n´2 - n
• Esempio: 0,1011bin (in binario)
0,1011bin = 1´2-1 + 0´2-2 + 1´2-3 + 1´2-4 = 1/2 + 1/8 + 1/16 =
= 0,5 + 0,125 + 0,0625 = 0,6875dec

32
Numeri frazionari
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Algoritmo per convertire un numero n frazionario in base 10


in base 2:
1. Il risultato in base 2 è inizializzato a 0,
2. Moltiplicare n per 2
3. La parte intera del risultato viene aggiunta come cifra meno
significativa del numero in base 2
4. Si torna al passo 2 considerando la parte frazionaria del risultato al
posto di n

• Terminazione dell’algoritmo
§ Soltanto i numeri del tipo m/2n (con n ed m interi) possono essere
rappresentati con un numero finito di cifre
§ In alternativa ci si ferma quando il numero di cifre calcolate
costituisce un’approssimazione sufficiente

33
Numeri frazionari
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

Cifra più
• Esempio: convertire (0.587)10 in base 2 significativa
0.587 2 = 1.174 : 1
0.174 2 = 0.348 : 0
0.348 2 = 0.696 : 0
0.696 2 = 1.392 : 1
0.392 2 = 0.784 : 0
0.784 2 = 1.568 : 1
... Cifra meno
significativa
• Il risultato (approssimato) è 0,100101bin

34
Numeri reali in virgola fissa
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Necessità: nel computer la virgola deve essere rappresentato


in qualche modo con cifre binarie!

• Si può rappresentare un numero reale in virgola fissa (o fixed


point) concatenando la rappresentazione della parte intera
(in modulo e segno) con la parte frazionaria:
19,6875dec = 10011,1011 virgola fissa
poiché si ha:
19dec = 10011bin e 0,6875dec = 0,1011bin

• La rappresentazione utilizza un numero fisso di bit per


rappresentare la parte intera ed per quella frazionaria
§ Nell’esempio 5 bit per la parte intera, 4 bit per quella frazionaria

35
Numeri reali in virgola fissa
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• La sequenza di bit rappresentante un numero frazionario


consta di due parti di lunghezza prefissata
§ Il numero di bit a sinistra e a destra della virgola è stabilito a priori
(alcuni bit potrebbero restare nulli)
• È un sistema di rappresentazione semplice, ma poco
flessibile, e può condurre a sprechi di bit
• Per rappresentare in virgola fissa numeri molto grandi
(oppure molto precisi) occorrono molti bit

36
Numeri reali in virgola mobile
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• La rappresentazione in virgola mobile (o floating point) è


usata spesso in base 10 (si chiama notazione scientifica):
1,37 ´ 107 notazione scientifica per intendere 13.700.000dec
si lascia una sola cifra diversa da 0 prima della virgola

• La rappresentazione binaria in virgola mobile funziona nello


stesso modo
R virgola mobile = +/- 1,M ´ 2E

37
Numeri reali in virgola mobile
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• I numeri in virgola mobile sono rappresentati comunemente con


lo standard IEEE 754 (singola precisione su 32 bit o doppia
precisione su 64 bit)

Segno Esponente Mantissa


• Segno: 1 per numero negativo, 0 per numero positivo
• All’esponente viene sommato 127 (es: 21 -> esponente=127+1)
§ Esponenti<127 rappresentano numeri nell’intervallo [0;1)
§ Esponenti>127 rappresentano numeri maggiori di 1
• La mantissa è normalizzata cioè la virgola viene spostata per
ottenere la forma 1,X. Perciò si salva solo X
§ Tranne quando l’esponente è 0; in tal caso la mantissa è 0,X
38
Numeri reali in virgola mobile
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

In generale, se l’esponente:
• è in (0;255) à vbin= (-1)segno x 1,mantissa x 2(esponente-127)
• è0 à vbin= (-1)segno x 0,mantissa x 2(-126)

• Valori particolari:
§ Esponente=255
” mantissa≠0 à valore NaN
” mantissa=0 segno=0 à valore +Inf
” ” segno=1 à valore –Inf
§ Esponente=0
” mantissa=0 segno=0 à valore +0
” ” segno=1 à valore –0

39
Numeri reali in virgola mobile
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Esempio: Convertire (-1079200,1875)10 in virgola


mobile a singola precisione

40
Numeri reali in virgola mobile
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Esempio: Convertire (-1079200,1875)10 in virgola


mobile a singola precisione
1. Converto 1079200,1875:
1079200 : 2 à 0 0,1875 x 2 = 0,375 à 0
539600 : 2 à 0 0,375 x 2 = 0,75 à 0
269800 : 2 à 0 0,75 x 2 = 1,5 à 1
134900 : 2 à 0 0,5 x 2 = 1,0 à 1
67450 : 2 à 0
33725 : 2 à 1
16862 : 2 à 0
8431 : 2 à 1

8 : 2 à 0
4 : 2 à 0
2 : 2 à 0
1 : 2 à 1
41
Numeri reali in virgola mobile
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Esempio: Convertire (-1079200,1875)10 in virgola


mobile a singola precisione
1. Converto 1079200,1875:
100000111011110100000,0011bin

42
Numeri reali in virgola mobile
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Esempio: Convertire (-1079200,1875)10 in virgola


mobile a singola precisione
1. Converto 1079200,1875:
100000111011110100000,0011bin
2. Normalizzo:
100000111011110100000,0011bin

43
Numeri reali in virgola mobile
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Esempio: Convertire (-1079200,1875)10 in virgola


mobile a singola precisione
1. Converto 1079200,1875:
100000111011110100000,0011bin
2. Normalizzo:
1,000001110111101000000011bin x 220

44
Numeri reali in virgola mobile
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Esempio: Convertire (-1079200,1875)10 in virgola


mobile a singola precisione
1. Converto 1079200,1875:
100000111011110100000,0011bin
2. Normalizzo:
1,000001110111101000000011bin x 220
3. Converto l’esponente: 20+127=147 147 : 2 à 1
73 : 2 à 1
36 : 2 à 0
18 : 2 à 0
9 : 2 à 1
4 : 2 à 0
2 : 2 à 0
1 : 2 à 1
45
Numeri reali in virgola mobile
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Esempio: Convertire (-1079200,1875)10 in virgola


mobile a singola precisione
1. Converto 1079200,1875:
100000111011110100000,0011bin
2. Normalizzo:
1,000001110111101000000011bin x 220
3. Converto l’esponente: 20+127=147
10010011bin

46
Numeri reali in virgola mobile
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Esempio: Convertire (-1079200,1875)10 in virgola


mobile a singola precisione
1. Converto 1079200,1875:
100000111011110100000,0011bin
2. Normalizzo:
1,000001110111101000000011bin x 220
3. Converto l’esponente: 20+127=147
10010011bin

11001001100000111011110100000010

47
Numeri reali in virgola mobile
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Esempio: Convertire (-1079200,1875)10 in virgola


mobile a singola precisione
1. Converto 1079200,1875:
100000111011110100000,0011bin
Precisione
2. Normalizzo: insufficiente
1,000001110111101000000011bin x 220

3. Converto l’esponente: 20+127=147


10010011bin Approssimazione

11001001100000111011110100000010
= (-1079200,25)10
48
Caratteri
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• I caratteri sono rappresentati con una codifica numerica


• La più comune è la codifica ASCII (American Standard Code
for Information Interchange) che utilizza 8bit

49

Potrebbero piacerti anche