Loading web-font TeX/Math/Italic

viernes, 8 de octubre de 2021

Representación IEEE Standard 754 en punto flotante

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.
Consideremos la representación de un cierto número (veremos cuál es al final) en el estándar IEEE 754 de simple precisión (32 bits) \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 01010011_{2}, o lo que es lo mismo 0b1010011 — 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

No hay comentarios:

Publicar un comentario