Esercizi sulla rappresentazione della virgola mobile IEEE 754 (Floating Point)

Esempio di calcolo per numeri a precisione singola (32 bit)

Prendiamo per esempio il numero negativo frazionario:

-5,828125

Trasformiamo in binario la parte intera:

5:2=2 R=1
2:2=1 R=0
1:2=0 R=1
5(10) = 101(2)

Trasformiamo ora la parte decimale in binario:

0,828125*2=1,65625 U=1
0,65625 *2=1,3125  U=1
0,3125  *2=0,625   U=0
0,625   *2=1,25    U=1
0,25    *2=0,5     U=0
0,5     *2=1       U=1
0,828125(10) = 110101(2)
Uniamo ora le due parti:

101,110101
Spostiamo la virgola due posizioni verso sinistra riscrivendo in questo modo il risultato:

1,01110101*2^2
Otteniamo quindi la parte iniziale della nostra mantissa 01110101, ed avendo spostato verso sinistra la virgola di due posizioni per ottenere lo stesso numero dobbiamo moltiplicare 2 al quadrato.

A questo punto ricaviamo l'esponente sommando 2 al bias:

2+127=129
Trasformiamo questo numero in binario:

129:2=64 R=1
 64:2=32 R=0
 32:2=16 R=0
 16:2= 8 R=0
  8:2= 4 R=0
  4:2= 2 R=0
  2:2= 1 R=0
  1:2= 0 R=1

129(10)=10000001(2)
Abbiamo così ottenuto il nostro numero in floating point ricordandoci di mettere ad 1 il bit del segno in quanto siamo partiti da un numero negativo:

-5,8281125(10)=1|1000 0001|0111 0101 0000 0000 0000 000(2)
Se vogliamo ora esprimere in esadecimale il numero trovato (senza tener conto dell'eventuale formato Litte Endian che modificherebbe la disposizione dei byte) non ci resta che suddividerlo a gruppi di quattro e trovare i valori esadecimali corrispondenti:

1100 0000 1011 1010 1000 0000 0000 0000
 C    0    B    A    8    0    0    0

In base sedici il nostro numero in floating point standard IEEE 754 sarà:

C0BA8000


Esercizi rappresentazione numeri in virgola mobile


Convertire il numero -30,375 in formato a virgola mobile IEEE 754 (precisione singola). 


Che numero rappresenta la seguente configurazione binaria in formato IEEE 754 ? 01000110010001100000000000000000




Commenti

Post popolari in questo blog

Simulazioni di reti (con Cisco Packet Tracer)