Virgola mobile

Wikipedia: Notazione scientifica – Virgola mobile – IEEE754

Virgola fissa

Con la notazione in virgola fissa i numeri sono sempre in colonna!

Il numero di cifre intere e di cifre decimali è fisso (anche la posizione del separatore, la virgola)

7 824    = +00 007 824,000 000 000
  -78,24 = -00 000 078,240 000 000

Nell’esempio il segno è seguito da 8 cifre intere, la virgola e 9 cifre decimali.

Virgola mobile

I numeri in virgola mobile, floating point, rappresentano dei numeri razionali, approssimazione dei numeri reali.

A differenza della notazione scientifica, le cifre rappresentano un numero tra 0 e 1, con la cifra più significativa diversa da 0

7 824 = 0,782 4 · 10^4

La mantissa è 0,7824 e l’esponente è 4.

Standard IEEE 754

Lo standard utilizzato dai computer utilizza il bit più significativo per il segno, un certo numero di bit per l’esponente e i rimanenti per la mantissa

bytebitbit
segno
bit
esponente
bit
mantissa
4321 31°830° … 23°2322° … 0°
8641 63°1162° … 52°5251° … 0°

Sia l’esponente che la mantissa prevedono delle ottimizzazioni

  • L’esponente è in eccesso di 127 rispetto al valore originale.
  • La mantissa rappresenta le cifre significative del numero in base 2 ma siccome il primo bit è sempre 1 allora viene omesso!

Alcune combinazioni hanno un significato speciale

SegnoEsponenteMantissa?
12550+infinito
02550-infinito
255<> 0not a number
1/0254…E = +127
…………
1/01…E = -126
100-0
000+0

Libro di testo: pagine 34

43,6875 = 43 + 0,6875 = (101011,1011)2 = 1,010111011x25

  • segno = 0
  • esponente = 5+127 = 132 = (10000100)2
  • mantissa = 01011101100000000000000

0 10000100 01011101100000000000000 = 01000010 00101110 11000000 00000000


Libro di testo: pagine 35

-11,375 = -(11 + 0,375) = -(1011,011)2 = -1,011011x23

  • segno: 1
  • esponente: 3+127 = 130 = (10000010)2
  • mantissa: 01101100000000000000000

1 10000010 01101100000000000000000 = 11000001 00110110 00000000 00000000


Libro di testo: pagine 36

-49,625 = -(49 + 0,625) = -(110001,101)2 = -1,10001101x25

  • segno: 1
  • esponente: 5+127 = 132 = (10000100)2
  • mantissa: 10001101000000000000000

1 10000010 01101100000000000000000 = 11000001 00110110 00000000 00000000


Wikipedia 1

-118,5 = -(118 + 0,5) = -(1110110,1)2 = -1,1101101x26

  • segno: 1
  • esponente: 6+127 = 133 = (10000101)2
  • mantissa: 11011010000000000000000

1 10000101 11011010000000000000000 = 11000010 11101101 00000000 00000000


Wikipedia 2

-5,828125 = -(5 + 0,828125) = -(101,110101)2 = -1,01110101x22

  • segno: 1
  • esponente: 2+127 = 129 = (10000001)2
  • mantissa: 01110101000000000000000

1 10000001 01110101000000000000000 = 11000000 10111010 100000000 00000000