ESERCITAZIONE TEORIA N°3, ESERCIZI 1-2, POLITECNICO DI TORINO SEDE DI MONDOVI’ SCAVINO ANDREA 1) Rappresentare i seguenti numeri, espressi in base dieci, nel formato floating point standard IEEE-754: -5.828125 3758.125 -23552.25 2) Convertire i seguenti numeri dal formato floating point standard IEEE-754 (espressi in base sedici) alla base dieci: 41340000H C1140000H D14D8000H SOLUZIONI Esercizio 1) A_ -5.828125 Per convertire la parte intera da decimale a binario si procede dividendo il numero per 2: 5 : 2 = 2 Resto 1 2 : 2 = 1 Resto 0 1 : 2 = 0 Resto 1 Per convertire la parte frazionaria da decimale a binario si procede moltiplicando il numero per 2: 0,828125 0,65625 0,3125 0,625 0,25 0,5 0 x2= x2= x2= x2= x2= x2= x2= 1,65625 1,3125 0,625 1,25 0,5 1 0 Parte intera Parte intera Parte intera Parte intera Parte intera Parte intera Parte intera 1 1 0 1 0 1 0 Per cui il numero binario è 101.110101 che si può anche scrivere come 1.01110101* 22 Quindi : segno =1 , esponente(prendo gli 8 bit successivi al bit del segno)(2+127)=10000001 , mantissa=01110101000000000000000 Il numero -5.828125 in floating point è 11000000101110101000000000000000 B_ 3758.125 Per convertire la parte intera da decimale a binario si procede dividendo il numero per 2: 3758 1879 939 469 234 117 58 29 14 7 3 1 :2= :2= :2= :2= :2= :2= :2= :2= :2= :2= :2= :2= 1879 939 469 234 117 58 29 14 7 3 1 0 Resto Resto Resto Resto Resto Resto Resto Resto Resto Resto Resto Resto 0 1 1 1 0 1 0 1 0 1 1 1 Per convertire la parte frazionaria da decimale a binario si procede moltiplicando il numero per 2: 0,125 0,25 0,5 0 x2= x2= x2= x2= 0,25 0,5 1 0 Parte intera Parte intera Parte intera Parte intera 0 0 1 0 Il numero in binario è 111010101110.0010 che si può scrivere come 1.110101011100010* 211 Quindi : segno =0 , esponente(prendo gli 8 bit successivi al bit del segno)(11+127)=(10+128)=10001010 mantissa=11010101110001000000000 Il numero 3758.125 in floating point è 01000101011010101110001000000000 C_ -23552.25 Per convertire la parte intera da decimale a binario si procede dividendo il numero per 2: 23552 11776 5888 2944 1472 736 368 184 92 46 23 11 5 2 1 :2= :2= :2= :2= :2= :2= :2= :2= :2= :2= :2= :2= :2= :2= :2= 11776 5888 2944 1472 736 368 184 92 46 23 11 5 2 1 0 Resto Resto Resto Resto Resto Resto Resto Resto Resto Resto Resto Resto Resto Resto Resto 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 Per convertire la parte frazionaria da decimale a binario si procede moltiplicando il numero per 2: 0,25 0,5 0 x 2 = 0,5 x2= 1 x2= 0 Parte intera 0 Parte intera 1 Parte intera 0 Il numero in binario è 101110000000000.010 che si può scrivere come 1.01110000000000010* 214 Quindi : segno =1, esponente(prendo gli 8 bit successivi al bit del segno)(14+127)=10001101 mantissa=01110000000000010000000 Il numero -23552.25 in floating point è 11000110101110000000000010000000 Esercizio 2) A_ 41340000H Numero in floating point= 01000001001101000000000000000000 segno=0 esponente(130-127)=310 numero=1011,012=11,2510 B_ C1140000H Numero in floating point=11000001000101000000000000000000 segno=1 esponente(130-127)=310 numero=-1001,012=-9,2510 C_ D14D8000H Numero in floating point=11010001010011011000000000000000 segno=1 esponente(162-127)=35 numero=1,10011011*235 = 110011.011*230= -51.325*109