Loading web-font TeX/Math/Italic

martes, 28 de septiembre de 2021

Representación en punto flotante en base 10 y en base 2

  En el siguiente ejemplo se muestra la manera de representar en el formato de punto flotante varios números reales (expresados en base 10) en la misma base o en base 2, y con un cierto número de dígitos significativos

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
-oOo-
Referencias:
  [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