Actualmente, la representación que usan la mayoría de los computadores es la llamada IEEE Standard 754 en punto flotante. Está basada en los tres elementos que se ha mencionado antes: signo, mantisa y exponente. Si la base es binaria,
b=2, el primer dígito (dígito principal) es, siempre,
1, esto es,
d_1=1, por lo que no haría falta almacenarlo en memoria (en cuyo caso nos referiríamos a él como dígito principal implícito).
En precisión simple, el estándard utiliza
32 bits (
4 bytes), de los cuales
8 bits (
1 byte) es para el exponente
E (representando números enteros no negativos que varían entre
0 y
255, esto es, los que se pueden codificar en base
2 con
8 bits);
23 bits son para la parte fraccionaria,
F, y
1 bit para el signo,
S. Cada bit almacena un
0 o bien un
1. Así, el valor asignado a una representación es
(-1)^{S}\times 2^{E-127} \times \mathbb{1}.F
Se utiliza un sesgo de
127 aplicado al valor del exponente almacenado
E, dando lugar al exponente verdadero
E-127, lo cual tiene como finalidad el poder representar tanto exponentes positivos como negativos; de este modo, un valor
almacenado E representa el valor verdadero
E-127.
Como ya hemos visto que
E varía entre
0 y
255, entonces
E-127 toma valores en el conjunto de
2^8=256 elementos:
\{-127,-126,\ldots,0,1,2,\ldots,128\}, y , por tanto,
2^{E-127} varía entre
2^{-127}\approx 10^{-38} y
2^{128}\approx 10^{38}.
El ordinal de cada término de la sucesión
-127,-126,\ldots,0,1,2,\ldots,128 (empezando a contar desde
0) se denomina
característica. El valor de la característica varía pues de
0 (para el valor del primer término
-127) a
255 (para el valor del último término
128), y representa el valor del exponente
almacenado E.
Designando por
n al número de bits del campo del exponente (en nuestro caso
n:=8), esta característica es igual, por tanto, al valor del exponente verdadero
E-127 más lo que viene a denominarse
desplazamiento y que es fácil ver que es igual a
2^{n-1}-1. Así por ejemplo, si el exponente verdadero es
E-127:=100, entonces el valor de la
característica es
100+2^{8-1}-1=100+128-1=227; y (otro ejemplo), como seria de esperar si
E-127:=-127, entonces sus característica es igual a
-127+2^{8-1}-1=-127+128-1=0; y si
E-127:=-128, entonces su característica es igual a
128+2^{8-1}-1=128+128-1=255, que es el último término de la sucesión que hemos comentado.
Por otra parte, El bit del signo es
0 para positivos y
1 para negativos.
Ejemplo 1.
La representación
\underset{\overbrace{1\; \text{bit para el signo}}}{1}\quad \underset{\overbrace{8\; \text{bits para el exponente}}}{01010011} \quad\underset{\overbrace{23\; \text{bits para la mantisa}}} {10011110\; 00101000\; 0101000} es tal que:
i) El signo es negativo por ser el valor del bit
S igual a
1, y, por tanto,
(-1)^S=(-1)^1=-1
ii) la mantisa
1.F es
1+
(1\cdot 2^{-1}+0\cdot 2^{-2}+0\cdot 2^{-3}+1\cdot 2^{-4}+\overset{\underbrace{23}}{\ldots}+0\cdot 2^{-22}+0\cdot 2^{-23}) donde a partir del segundo sumando se expresa la cantidad
F, siendo el primer sumando a la izquierda, el
primer uno, que viene de la notación
1.F, luego la mantisa corresponde al número
\dfrac{2097151}{1048576}
iii) El exponente verdadero de la potencia
2^{E-127} es igual a 0
1010011_{2}, o lo que es lo mismo 0b
1010011 — en base
2 los números suelen empezar por 0 o bien por 0b— corresponde a
83_{10}-127=-44
Por tanto, la representación estándard indicada da el valor
-( \dfrac{2097151}{1048576} ) \times 2^{83-127} es decir
-( \dfrac{2097151}{1048576} ) \times 2^{-44}\approx -0.1136868\times 10^{-12} pues con
23 bits de mantisa el número de dígitos/cifras significativas correctas que podemos asegurar es de
7
-oOo-
Nota: En doble precisión, se reservan
11 bits es para representar el exponente
E, donde el sesgo es ahora de
2^{11-1}-1=2^{10}-1=1023.
-oOo-
Referencias:
[1] Moreno, C.:
Introducción al Cálculo Numérico, UNED, Madrid, 2011
[2] García Valle, J.L.: Matemáticas especiales para computación, McGraw-Hill, Madrid, 1988