Esercizi di conversione in formato Binary16

 

La sequenza di bit 1 01101 0011001000 è un numero in binary16, ossia un numero frazionario in virgola mobile espresso con un bit di segno, cinque di esponente in eccesso 15 e il resto mantissa.

Convertirlo in decimale.

 

Il primo bit 1 = bit per il segno: 0 = +; 1 = –  quindi il nostro numero ha il segno –

Esponente = N – BIAS

BIAS = 2k-1 – 1 (dove k è il numero di bit con i quali viene codificato l’esponente; nel nostro caso 5) quindi avremo:

BIAS = 25-1 – 1 = 2– 1 = 16 – 1 = 15

N = (01101)2 = 8+4+1 = 13 in base 10

Esponente = N – BIAS = 13 – 15 = –2

Consideriamo ora la Mantissa e trasformiamola in numero decimale

 

0

 

-1

-2

-3

-4

-5

-6

-7

-8

-9

-10

esponente

 

 

1

.

0

0

1

1

0

0

1

0

0

0

mantissa

 

 

 

20+2-3+2-4+2-7 = = 1+0,125+0,0625+0,078125 = 1,1953125 = 1,195 (abbiamo considerato solo 3 cifre significative dopo la virgola)

 

Dalla formula F = +/– M•2E cioè il numero F (floating) = segno (+ o –) Mantissa per 2 elevato all’Esponente avremo:

F = –1,195•2-2 –0,2988

 

 

Convertire il numero decimale 0,21 in formato binary16: un bit di segno, cinque di esponente in eccesso 15 e il resto mantissa.

 

Convertiamo la parte intera del numero (0)10 = (0)2

Ora convertiamo la parte decimale con il complemento a 2

 

0,21x2=0,42  cifra più significativa

0,42x2=0,84

0,84x2=1,68

0,68x2=1,36

0,36x2=0,72

0,72x2=1,44

0,44x2=0,88

0,88x2=1,76

0,76x2=1,52

0,52x2=1,04

0,04x1=0,08

0,08x2=0,16

0,16x2=0,32   cifra meno significativa

Scriviamo il numero sommando la parte intera a quella decimale (partendo a scrivere il numero binario della parte decimale dalla cifra più significativa):

 

0 + 0.0011010111000

 

Partendo da 0. per avere la prima cifra significativa  1 dobbiamo compiere 3 salti ottenendo:

1.1010111000•2-3  il nostro esponente è quindi -3

BIAS = 2k-1 – 1 (dove k è il numero di bit con i quali viene codificato l’esponente; nel nostro caso 5) quindi avremo:

BIAS = 25-1 – 1 = 2– 1 = 16 – 1 = 15

Dalla formula Esponente = N – BIAS  ricaviamo N

N = E+BIAS = -3 +15 = 12 che convertiamo in base 2

(12)10 = (01100)2 per cui il numero binario finale avrà segno positivo (0), Esponente = 12 (01100) e Mantissa = 1010111000

Il numero decimale 0,21 in binary16 = 0  01100   1010111000