Convertir un número decimal a binario con punto flotante Instituto Tecnológico de Costa Rica/Sede Central Escuela de Ingeniería en Computación Curso de Taller de Programación Profesora: Ericka Solano Fernández Estudiante: Pedro Rodríguez de Oliveira Carnet: 2013086585 II Semestre, 2013
Cuando tenemos un número decimal con punto flotante (mejor conocido como la coma) y lo deseamos convertir en un número binario, lo que se debe realizar es separar la parte entera y la parte decimal, la cual llamaremos parte flotante durante esta presentación, de tal número. Por ejemplo, tomaremos el número 36,375. De ahí, el procedimiento consta en separar el 36 y el 0,375 de dicho número. Al convertir 36 en binario, obtendríamos el número 10010 (2 5 +2 2 o 32+4)
Ahora, con el 0.375, haremos un serie de multiplicaciones por dos, donde el fin de tal serie será cuando obtengamos como resultado 1 o 1.000 en este caso. Cabe destacar que es necesario subrayar la parte entera obtenida (sea 0 o 1), porque la necesitaremos apenas finalice la serie de multiplicaciones. 0.375x2= .75 (No obtuvimos el 1.00, por lo tanto, seguimos la serie tomando el número obtenido en la multiplicación) 0.75x2= 1 .5 (Tampoco obtuvimos el 1.00. En este caso, como obtuvimos en la parte entera un uno, le restaremos a ese número una unidad (1.5-1.0) y trabajaremos con lo obtenido en dicha resta para la próxima multiplicación (0.5) ) 0.5x2= 1 .00 (Hemos llegado al resultado)
Analizando los números obtenidos en la serie de multiplicaciones ( .75, 1 .5 y 1 .0), vamos a lo importante! Tomamos en cuenta el 10010 (36 en binario) y ahora le sumaremos su parte flotante (la obtenida en la serie). En este caso tomaremos en cuenta el número rojo subrayado. En orden, agarraremos (en el orden izquierda-derecha) estos números rojos y los convertiremos en uno solo. En este caso, obtuvimos 011. Ahora uniremos la parte entera con la parte flotante y el número obtenido será 10010.011. Entonces 36.375 decimal =10010.011 binario
Muchas veces no corremos con la suerte que el resultado en la serie de multiplicaciones nos venga a dar como resultado 1.00. Para este caso, están los dígitos de precisión. Con los dígitos de precisión, más dígitos hayan en la parte flotante, más cercano será ese al número decimal. Por ejemplo, trabajaremos con el número 0.36
Aquí empezaremos la serie de multiplicaciones: 0.36x2= .72 * 0.28x2= .56 0.72x2= 1 .44 0.56x2= 1 .12 0.44x2= .88 0.12x2= .24 0.88x2= 1 .76 0.24x2= .48 0.76x2= 1 .52 0.48x2= .96 0.52x2= 1 .04 0.96x2= 1 .92 0.04x2= .08 0.92x2= 1 .84 0.08x2= .16 0.84x2= 1 .68 0.16x2= .32 0.68x2= 1 .36 0.32x2= .64 0.36x2= .72 ** 0.64x2= 1 .28 … (Y así sucesivamente) Como pueden observar, la primera operación de la serie (*) se repite con la última operación (**). Esto es conocido como un número periódico, por lo cual de ahí se repetirán los decimales sin fin, indicando que la serie nunca llegará a finalizar.
De aquí, hay dos maneras de das el resultado: Dígitos de Precisión: En este caso daremos el resultado con 6 dígitos de precisión, por lo cual tomaremos los 6 primeros resultados de la serie: .72, 1 .44, .88, 1 .76, 1 .52 y 1 .04. Ahora tomamos los números rojos subrayados, de izquierda a derecha, y lo transformaremos en un número: 010111. Como es 0.36, la parte entera sería igual a 0 Con esto, 0.36 decimal ≈ 0.010111 binario Si lo convertimos a decimal, esto será igual a 2 -2 +2 -4 +2 -5 +2 -6 =0.359375, que es cercano a 0.36.
Dígitos periódicos: Tomaremos todos los resultados que se encuentran en la serie formada anteriormente, excepto el último, porque se repite con el primero. Los resultados son: .72, 1 .44, .88, 1 .76, 1 .52, 1 .04, .08, .16, .32, .64, 1 .28, .56, 1 .12, .24, .48, .96, 1 .92, 1 .84, 1 .68, .36. Con esto formamos el número 01011100001010001110 y obtenemos que 0.36 decimal ≈ 0. 01011100001010001110 binario Si lo convertimos a decimal, esto será igual a 0.359998703, lo cual es más preciso que el resultado con 6 dígitos de precisión.