Lo standard maggiormente utilizzato in virgola mobile è lo IEEE 754 che definisce vari tipi di formati:
- Half Precision: 1 bit del segno, 5 bit dell’esponente, 10 bit mantissa
- Single Precision: 1 bit del segno, 8 bit dell’esponente, 23 bit mantissa
- Double Precision: 1 bit del segno, 11 bit dell’esponente, 52 bit mantissa
Il bit del segno se posto ad 1 indica un numero negativo, se posto a 0 indica un numero positivo, per quanto riguarda la mantissa dobbiamo ricordare il concetto di notazione scientifica, ovvero: In binario gode delle stesse proprietà ma moltiplicato per base 2: Quindi ogni numero che vogliamo rappresentare in virgola mobile va scritto: Otteniamo quindi un 1 a sinistra della virgola, e tutte le altre cifre alla sua destra (mantissa), tutto moltiplicato per 2 elevato all’esponente che nella rappresentazione IEEE 754 Half Precision è rappresentato con 5 bit; in questo standard infatti si utilizza un offset, quindi avendo a disposizione 5 bit dobbiamo sommare all’esponente una variabile k tale che , quindi in questo caso 15. Il numero che otteniamo da questa somma prende il nome di exponent bias.
Facciamo un esempio pratico scriviamo in standard IEEE 754 Half Precision il numero decimale 13,25:
- Converto in binario il numero 13,25 = 1101,01
- Sposto la virgola e scrivo il numero in forma
- Aggiungo k (bias) all’esponente 3 + 15 = 18
- Scrivo il numero nella notazione mettendo lo 0 nel bit del segno (numero positivo), 18 in binario nei bit dell’esponente e i bit della mantissa 0 | 10010 | 10101
Procedimento inverso
Possiamo seguire questa formula: Ci basterà poi mettere il segno meno se il numero aveva un 1 al bit del segno altrimenti lasciamo il segno positivo. Per esempio con il numero precedente 0 | 10010 | 10101 otteniamo: Nel bit del segno abbiamo 0 quindi il numero è positivo