NOTA PRELIMINAR. En la representación de un númro real x en el formato de coma flotante, se considera el conjunto de dígitos \mathcal{M}, de tal manera que \text{float}(x):=\pm\,0.d_{1}\,d_{2}\,\ldots\times b^e\approx \pm\,0.d_{1}\,d_{2}\,\overset{\underbrace{n}}{\ldots},d_{n}\times b^e
que es la representación finita de dicha cantidad, donde 0\le d_i \prec b para i=1,2,\ldots ,n, siendo b un número entero positivo que corresponde a la base de la representación, y el número entero e es el exponente, que puede variar en un determinado rango; y, finalmente, el número entero positivo n da cuenta de la precisión de la representación. La parte fraccionaria se denomina mantisa ( 0.d_{1}d_{2}\ldots d_{n} ).
Para pasar a la represntación finita, utilizaremos la siguiente notación para notar las necesarias operaciones de truncamiento o bien de redondeo — recordemos que lo usual será hacerlas por redondeo &madash;: \mathbb{R}\ni \text{float}(x)=\pm\,0.d_{1}d_{1}\ldots \times b^e \approx \left\{\begin{matrix}\mathcal{T}(x;n)=\text{Ent}(b^n \times 0.m)\times b^{e-n} \\ \mathcal{R}(x;n)=\text{Ent}(b^n \times 0.m+\mu)\times b^{e-n}\end{matrix}\right.
donde \mu denota media unidad en el sistema de numeracíon de base b que se emplee; así, si b=10 es claro que \mu=0.5, y, si, por ejemplo, b=2, entonces \mu=0.1_{2} ya que 0.1_{2}=2^{-1}=0.5_{10}
ENUNCIADO. Hállese la representación en punto flotante ( sin dígito principal implícito ) de: a) 2/7 en un sistema con b=10 y n=6
b) 327 en un sistema con b=2 y n=6
c) -4/3 en un sistema con b=2 y n=6
SOLUCIÓN.
a)
2/4=0.\overline{285714}_{10}\times 10^0, luego e=0. Así, 4/7 \approx \mathcal{R}(4/7;6) =\text{Ent}(10^6 \times 0.\overline{285714}_{10} +0.5 )\times 10^{0-6}=
=\text{Ent}(10^6 \times 0.285714285714\ldots_{10} +0.5 )\times 10^{-6}
=\text{Ent}(285714.5) \times 10^{-6}
=285714 \times 10^{-6}
=0.285714 \times 10^{0}
b)
327_{10}=101000111_{2}=0.101000111_{2}\times 2^9, luego e=9
Entonces, 0.101000111_{2}\times 2^9 \approx \mathcal{R}(0.101000111_{2}\times 2^9;6)=
=\text{Ent}(2^6\times 0.101000111_{2}+\mu)\times 2^{9-6}
=\text{Ent}(101000.111_{2}+\mu)\times 2^{3}, donde \mu ( media unidad en el sistema binario ) es 0.1_{2} ya que esto a su vez es igual a 0.5_{10}
=\text{Ent}(101000.111_{2}+.1_{2})\times 2^{3}
=\text{Ent}(101001.011_{2})\times 2^{3}
=101001_{2}\times 2^{3}
=0.101001_{2}\times 2^6 \times 2^{3}
=0.101001_{2}\times 2^{9}
Observación. Veamos esa cantidad en base 10:
=(1\times 2^{-1}+1\times 2^{-3}+1\times 2^{-6})\times 2^{9}
=1\times 2^{8}+1\times 2^{6}+1\times 2^{3}
=256+64+8
=328
c)
4/3=1.\overline{3}_{10}=1.01010101\ldots_{2}=0.10101010\ldots_{2}\times 2^1, luego e=1
Entonces 0.10101010\ldots_{2}\times 2^1 \approx
\approx \mathcal{R}(0.10101010\ldots_{2};6)=
=\text{Ent}(2^6\times 0.10101010\ldots_{2}+\mu)\times 2^{1-6}, donde \mu ( media unidad en el sistema b=2) es \mu=.1_{2}=2^{-1}=0.5_{10}; y, siendo e=1 y n=6, el exponente e-n=1-6=-5
=\text{Ent}(101010.1010\ldots_{2}+.1_{2})\times 2^{-5}
=\text{Ent}(101011.0010\ldots_{2})\times 2^{-5}
=101011\ldots_{2}\times 2^{-5}
=1.01011_{2}
=0.101011_{2}\times 2^1
Finalmente, tendremos en cuenta que \mathcal{R}(-x)=-\mathcal{R}(x), con lo cual podemos escribir que
-4/3 \approx \mathcal{R}(-4/3;6)=-\mathcal{R}(4/3;6)=-0.101011_{2}\times 2^1
\square
[1] Moreno, C., Introducción al Cálculo Numérico, UNED, Madrid, 2011
[2] Aubanell, A. et al., Útiles básicos de Cálculo Numérico, Labor, Barcelona, 1993
[3] Demindovich, B.O.;Maron, I.A., C., Cálculo Numérico Fundamental, Paraninfo, Madrid, 1988
No hay comentarios:
Publicar un comentario