Transcript null

INFORMATICA Novembre 2016 1ASA Docente Salvatore Mosaico parte 1
Codifica dei numeri RAZIONALI con segno in base 2:
• Rappresentazione in virgola fissa
• Rappresentazione in virgola mobile (Floating Point)
Rappresentazione in virgola fissa
La rappresentazione in virgola fissa e cosi detta in quanto,
stabilito il numero n di bit per memorizzare il numero
reale (solitamente 8 16 32 64) si usa un bit per
rappresentare il segno del numero ed i rimanenti n -1 bit
vengono suddivisi in due parti una per la memorizzazione
della parte intera e una per la parte frazionaria, separate
esempio 16 bit
15
Segno +0= + 1= -
14
13
12
11
10
9
8
7
Parte intera
6
5
4
3
2
Parte Frazionaria
,
1 bit per il segno
7 bit parte intera
8 bit parte frazionaria
La vigila tra 7 e 8 bit (immaginaria)
1
1
0
INFORMATICA Novembre 2016 1ASA Docente Salvatore Mosaico parte 1
Ricordiamo che 29,37 nella forma polinomiale
2*101+9*100+3*10-1+7*10-2 =20+9+1/10+1/100
Ossia la parte decimale sono potenze negative di 10
Per convertire da base 10 a base in base 2 un numero frazionario
Si mette 0 1 nel bit più significativo 0 positivo 1 negativo
Si converte normalmente la parte intera in base 2
Si converte la parte frazionaria nel seguente modo:
SI PROCEDE NEL SEGUENTE MODO:
• si moltiplica il numero da convertire * 2 e si ottiene una parte intera e una
decimale
• si ripete a partire dalla parte decimale ottenuta e si ottiene una nuova parte
intera e una decimale
• fino ad ottenere una parte decimale 0 o raggiunto numero massimo bit a
(numero periodico)
• il numero convertito e formato da tutte le parti intere (la prima è la più
significativa)
• Con n bit fissato f come numero di bit dopo dei quali si
fissa la virgola si ha
che l'intervallo di dei valori rappresentabile va da
-(2n- 1)・2 -f
a +(2n- 1 -1)・2–f
2
INFORMATICA Novembre 2016 1ASA Docente Salvatore Mosaico parte 1
ESEMPIO 1
Convertire in binario virgola fissa il numero 43,6875 (16 BIT)
IL NUMERO È POSITIVO BIT 15 = 0
Covertiamo la parte intera
DIVIDENDO
43
21
10
5
2
1
(43)1o=(101011)2
DIVISORE
2
2
2
2
2
2
QUOZIENTE
21
10
5
2
1
0
RESTO
1
1
0
1
0
1 (bit + significativo)
Covertiamo la parte frazionaria
(0,6875)1o
fattore1
0,6875
0,375
0,75
0,5
fattore2
2
2
2
2
prodotto parte frazionaria
1,375
0,375
0,75
0,75
1,5
0,5
1
0
parte intera
1 (bit + significativo)
0
1
1
(0,6875)1o=(1011)2
Otteniamo dunque (43,6875)10 = (101011,1011)2
15
Segno +0= + 1= 0
14
13
12
11
10
9
8
7
6
Parte intera
0
1
0
1
0
5
4
3
2
1
0
0
0
Parte Frazionaria
1
1
1
,
3
0
1
1
0
0
INFORMATICA Novembre 2016 1ASA Docente Salvatore Mosaico parte 1
ESEMPIO 2 (numero periodico)
Convertire in binario il numero periodico 4,333333333… (16 BIT)
IL NUMERO È POSITIVO BIT 15 = 0
Convertiamo la parte intera
DIVIDENDO
4
2
1
(4)1o=(100)2
DIVISORE
2
2
2
QUOZIENTE
2
1
0
RESTO
0
0
1 (bit + significativo)
Covertiamo la parte frazionaria
(0,33333333333..)1o
fattore1
prodotto
0,33333333
0,66666667
0,66666667
1,33333333
0,33333333
0,66666667
0,66666667
1,33333333
0,33333333
0,66666667
0,66666667 1,33333333
0,33333333
0,66666667
0,66666667 1,33333333
4
parte
parte
frazionaria intera
0,66666667
0
0,33333333
1
0,66666667
0
0,33333333
1
0,66666667
0
0,33333333
1
0,66666667
0
0,33333333
1
INFORMATICA Novembre 2016 1ASA Docente Salvatore Mosaico parte 1
(0,33333333..)1o =(01010101)2
Otteniamo dunque (4,333333333..)10 = (100,01010101)2
notiamo che spesso abbiamo sempre approssimazioni
( le cifre decimali inferiori a quelle reali)
Conversione di numeri razionali da base 2 a base 10:
Si utilizza come per gli interi la forma polinomiale
utilizzando le potenze negative per le cifre dopo la virgola
(101,01)2 = 1*22 + 0*21 + 1*20 + 0*2-1 + 1*2-2 =
= 4 + 0 + 1 + 0 + 0,25 = 5,25
perché 2-1 = 1/2 = 0,5
2-2 = 1/22 = ¼= 0.25
e in generale 2-n = 1/2n
5