Estándar IEEE 754 para la representación en coma flotante

Introducción

La aritmética en coma flotante ha sido objeto de polémicas y múltiples formas de implementarla (quizás más adelante escriba una entrada sobre los métodos más extendidos) pero fue en 1985 cuando el IEEE [1] terminó y publicó un documento donde estandarizaba la forma de representar los números en punto flotante y cómo realizar las operaciones aritméticas. Esta norma se conoce como IEEE 754, y ha sido un fuerte dolor de cabeza para más de un estudiante de Informática en su primer año.

A día de hoy se considera el estándar de facto en todos los ordenadores personales. Pero, ¿cómo funciona exactamente?

Representación

Simplificando a dos modalidades la norma define dos resoluciones posibles para los números. Véase la figura 1. Simple precisión (32 bits) y doble precisión (64 bits).

Formato de representación para el estándar IEEE 754 (en simple y doble precisión). Imagen gracias a IBM.

Figura 1: Formato de representación para el estándar IEEE 754 (en simple y doble precisión). Imagen gracias a IBM.

Matemáticamente, ¿cómo funciona este sistema de representación? Dado un número real “x” será representado como su signo, multiplicado por el valor de su mantisa (número normalizado tipo notación científica) y multiplicado además por la base de representación  elavada al valor del exponente sesgado.

(1)
(2)

Hablando en términos de representación numérica en computadores y tomando como ejemplo el caso de simple precisión donde se reserva un bit para el signo, 8 bits para el exponente y 23 bits para la matisa tenemos:

  • Bit de signo: 0 positivo / 1 negativo
  • El exponente se representa sesgado al valor dado por la formula (2). En el caso de simple presición sería: exps = 2^(8-1)-1=2^7-1=127.
  • La mantisa en binario es un número del tipo 1.xxxxx donde el primer 1 no fraccionario se asume y no se representa dentro del formato.
Más adelante realizaremos algún ejemplo práctico, veremos números especiales como NaN , Infinito o el cero. De momento dejo unas curiosidades.

Curiosidades

Número más grande representable:

Número más pequeño representable (positivo y no cero):

Tendiendo a cero hay una serie de números reales no representables:

Referencias

  1. Instituto de Ingenieros Eléctricos y Electrónicos (IEEE o IE3): http://www.ieee.org/index.html
  2. Grupo del IEEE sobre la norma 754: http://grouper.ieee.org/groups/754/
  3. Lecture Notes on the Status of IEEE Standard 754 for Binary Floating-Point Arithmetic: http://www.eecs.berkeley.edu/~wkahan/ieee754status/IEEE754.PDF
  4. Conversor entre decimal <–> IEEE754: http://www.h-schmidt.net/FloatConverter/
  5. Conversor entre decimal <–> IEEE754: http://users.minet.uni-jena.de/~sack/SS04/download/IEEE-754.html
  6. http://es.wikipedia.org/wiki/Intel_8087
  7. An Interview with the Old Man of Floating-Point; http://www.cs.berkeley.edu/~wkahan/ieee754status/754story.html
  8. Transparencias muy ilustrativas: http://webdelprofesor.ula.ve/ingenieria/gilberto/paralela/09_AritmeticaPuntoFlotante.pdf

Instalar LaTeX en Windows: MiKTeX

Introducción

Hace poco un amigo muy cercano mostró interés a comenzar a componer texto con el procesador de textos LaTeX.

No voy a explicar en este post la historia de LaTeX ni justificarlo (no descarto hacerlo en un futuro), pero adelantaré que es un increíble procesador para texto científicos, matemáticos y texto de ingeniería en general. Pero no sólo eso, es un programa tan prolífico que podemos generar todo tipo de documentos: transparencias (tipo powerpoint), partituras musicales, esquemas de química orgánica, y todo tipo de documentos normales. Quizás en un futuro cercano dedique un post a poner ejemplos de documentos en LaTeX.

MiKTeX

MiKTeX es una distrubición LaTeX para el sistema operativo Windows. Sus principales ventajas son la sencillez en su instalación y la perfecta integración que tiene en el sistema operativo. Podemos descargarlo desde esta página. Si descargamos el basic installer tendremos la versión mínima e indispensable del programa (Solo 200+ MB). Para añadir funcionalidades extra se pueden instalar más tarde en su gestor de paquetes.

Texmaker

Este es uno de los mejores editores para LaTeX tanto para usuarios expertos como nóveles. Es muy sencillo, tiene botones y menús para facilitar la escritura y lo mejor de todo es el panel derecho dónde se muestra el resultado de nuestro documento.

De modo que a la izquierda queda el código fuente y cada vez que se genera el documento a la derecha se refresca éste para poder verlo y además nos indica en rojo a qué altura del documento queda nuestra posición exacta en el editor.

Además es un editor multiplataforma con lo que podemos usarlo en Windows y compartir el trabajo con cualquier usuario de GNU/Linux, MacOS sin problemas. Podemos ver algunos pantallazos esta página.

Referencias