Punto Flotante
Aunque tanto el punto como la coma son válidas como marcas decimales según el Sistema Internacional y la norma ISO, las Academias de la Lengua recomiendan el punto. Esto facilita las cosas, porque se converge así con la notación anglosajona que es la que se utiliza en la mayoría de lenguajes de programación. En este sitio se ha optado por la denominación «punto flotante» en lugar de «coma flotante», puesto que la Fundación del Español Urgente (Fundéu BBVA) especificó en una consulta que debe haber correspondencia con el criterio adoptado para la marca decimal.
Cuando se utilizan lenguajes de alto nivel en sistemas de microcontrol, como BASIC ó C, existe la posibilidad de definir las variables empleadas en los programas como: enteras positivas, enteras con signo, o de punto flotante. Los valores de las variables enteras son almacenados en memoria.
La representación de punto flotante permite almacenar en memoria número reales (es decir, valores que pueden ser positivos ó negativos y manejar punto decimal), siempre en un formato fijo de 24 ó 32 bits, dependiendo del compilador utilizado.
Los números representados en formato de punto flotante son generados a partir de una mantisa y un exponente y pueden tomar valores muy grandes o muy pequeños. El exponente permite mover el punto del valor binario expresado en la mantisa, hasta +127 posiciones hacia la derecha o -127 hacia la izquierda.
El valor se expresa como un bit del signo, un exponente de 8 bits y una mantisa de 15 bits a la cual, al realizar la conversión a su valor real, se añade un "1" implícito al valor almacenado en memoria, formando finalmente una mantisa de 16 bits.
BYTE 1 |
BYTE 2 |
BYTE 3 |
SIGNO: es el bit 7 del BYTE 1. Si el valor es de 0, el número es positivo, si es 1, negativo.
EXPONENTE: es un valor de 8 bits, con un offset de 7FH. Para encontrar el valor real del exponente, se le debe restar -7FH al valor almacenado en memoria. Los 8 bits están formados por los 7 bits menos significativos del BYTE 1 y el bit más significativo del BYTE 2. El exponente real expresa el número de posiciones hacia la derecha (cuando el valor es positivo) o hacia la izquierda (cuando el valor es negativo) que debe de moverse el punto binario en la mantisa.
MANTISA: está formada por 15 bits. Estos 15 bits lo forman los 7 bits menos significativos del BYTE 2 y los 8 bits del BYTE 3. Al realizar la conversión a su valor real, se le debe añadir un "1" implícito, como se indica enseguida.
El "1" implícito: al realizar la conversión del valor almacenado en memoria, a la mantisa se le debe añadir siempre un "1" a la izquierda del valor binario de 15 bits, que finalmente forma la representación de 16 bits.
La posición del punto: la posición del punto, que separa a la parte entera de la parte fraccionaria, siempre estará inicialmente después (a la derecha) del "1" implícito de la mantisa. Esta posición inicial del punto habrá que moverla hacia la derecha o hacia la izquierda, según el valor del exponente real. Favor de ver los ejemplos mostrados abajo.
Ejemplos:
Definición de una variable de punto flotante en C