jueves, 6 de mayo de 2021

Expresión de un número decimal en binario

ENUNCIADO. Exprésese en base $2$ el número $13,3$ (que viene dado en base $10$), conservando en la representación finita $23$ bits en la parte fraccionaria.

SOLUCIÓN. La parte entera, $13$, es igual a $1101_{2}$; en efecto, dividiendo sucesivamente por $2$ ( que es el número de símbolos del alfabeto de numeración binario ) el número en cuestión, y teniendo en cuenta el teorema de la división entera, al llevar a cabo las divisiones sucesivas de $13$ entre $2$:
$13=6 \cdot 2+\textbf{1}$
$6=3\cdot 2+\textbf{0}$
$3=\textbf{1}\cdot 2+\textbf{1}$
hasta llegar a una división con resto cero - en este caso, la tercera -, tomamos el bit menos significativa como el valor del último cociente, seguido por el bit que corresponde al resto de dicha división, y, así, siguiendo con las divisiones anteriores hasta obtener el bit más significativo, que corresponde al resto de la primera división. En efecto, al escribir el número en forma desarrollada, $1\cdot 2^3+1\cdot 2^2+0\cdot 2^1+ 1\cdot 2^0$, vemos que dicha suma, $8+4+1$, es igual a $13_{10}$

Ocupémonos ahora de la parte fraccionaria (decimal):
$0.3\cdot 2 = 0.6 \rightarrow 0$
$0.6\cdot 2 = 1.2 \rightarrow 1$
--
$0.2\cdot 2 = 0.4 \rightarrow 0$
$0.4\cdot 2 = 0.8 \rightarrow 0$
$0.8\cdot 2 = 1.6 \rightarrow 1$
$0.6\cdot 2 = 1.2 \rightarrow 1$
--\,
$0.2\cdot 2 = 0.4 \rightarrow 0$
$0.4\cdot 2 = 0.8 \rightarrow 0$
$0.8\cdot 2 = 1.6 \rightarrow 1$
$0.6\cdot 2 = 1.2 \rightarrow 1$
--
$0.2\cdot 2 = 0.4 \rightarrow 0$
$0.4\cdot 2 = 0.8 \rightarrow 0$
$0.8\cdot 2 = 1.6 \rightarrow 1$
$0.6\cdot 2 = 1.2 \rightarrow 1$
--
$0.2\cdot 2 = 0.4 \rightarrow 0$
$0.4\cdot 2 = 0.8 \rightarrow 0$
$0.8\cdot 2 = 1.6 \rightarrow 1$
$0.6\cdot 2 = 1.2 \rightarrow 1$
--
$0.2\cdot 2 = 0.4 \rightarrow 0$
$0.4\cdot 2 = 0.8 \rightarrow 0$
$0.8\cdot 2 = 1.6 \rightarrow 1$
$0.6\cdot 2 = 1.2 \rightarrow 1$
--
$0.2\cdot 2 = 0.4 \rightarrow 0$
$0.4\cdot 2 = 0.8 \rightarrow 0$
$0.8\cdot 2 = 1.6 \rightarrow 1$
$0.6\cdot 2 = 1.2 \rightarrow 1$
--
$0.2\cdot 2 = 0.4 \rightarrow 0$
$0.4\cdot 2 = 0.8 \rightarrow 0$
$\vdots$
y, así, indefinidamente, por lo que la parte fraccionaria consta de infinitos bits ( unos y ceros ), con periodicidad $1100$ a partir del quinto bit de la partea fraccionaria. Así, pues, $13,3_{10}=1101.0100\,1100\,1100\,1100\,\ldots_{2}$
Como hay infinitos bits en la parte fraccionaria, tenemos que quedarnos con un número finito de ellos para poder representar dicha cantidad en los registros de memoria de un computador ( que, obviamente, tienen longitud finita ); pongamos que cortamos el bit vigésimo tercero de la parte fraccionaria, entonces:
$13,3_{10}=1101.\,0100\,1100\,1100\,1100\,1100\,1100\ldots_{2} \approx$
$\approx 1101.\,0100\,1100\,1100\,1100\,1100\,110_{2}$
El valor ( en base $10$ ) que corresponde a esta representación finita es
$1\cdot 2^3+1\cdot 2^2+0\cdot 2^1+1\cdot 2^0 + 0\cdot 2^{-1}+1\cdot 2^{-2}+0\cdot 2^{-3}+0\cdot 2^{-4}+\ldots+0\cdot 2^{-23}=$
$=2^3+2^2+1+2^{-2}+2^{-5}+2^{-6}+2^{-9}+2^{-10}+2^{-13}+2^{-14}+2^{-17}+2^{-18}+2^{-21}+2^{-22}$
$=13,2999\,9995\neq 13$
Observemos que el error absoluto de la aproximación ( por representación finita ) es igual a $$|13,3-13,2999\,9995|=0,0000\,0005$$
(esto es, de $5\times 10^{-8}$), luego el error relativo es igual a $$\dfrac{5\times 10^{-8}}{13,3}\approx 4\times 10^{-9}=4\times 10^{-7}\,\%$$
$\square$

No hay comentarios:

Publicar un comentario