Programacion

Lógica

Home ] [Tácticos ] [Índice ]

Notacion de punto flotante


Sumario

Forma de representar en un ordenador los números enteros, positivos y negativos, y los números reales,


Arriba

Números Reales, Notación de punto flotante

El método usual que emplean los ordenadores para representar números reales es la notación de punto flotante. Hay muchas variedades de notaciones de punto flotante y cada una tiene características particulares. El concepto fundamental es que un número real se representa mediante un número, llamado mantisa, por una base elevada a una potencia entera, denominada exponente. Por lo general, la base es fija y la mantisa y el exponente varían para representar números reales distintos. Por ejemplo, si la base está fija en 10, el número 387.53 se representaría como 38753 x 10-2 . (Recuerde que 10-2 es .01). La mantisa es 38753 y el exponente es -2. Otras representaciones posibles son .38753 x 103 y 387.53 x 100 . Aquí elegimos la representación en la cual la mantisa es un entero sin ceros sobrantes.

En la notación de punto flotante que describimos (que no necesariamente se ejecuta en una máquina particular del modo exacto en que se describe), un número real se representa mediante una cadena de 32 bits que consta de una mantisa de 24 bits seguida de un exponente de 8 bits. La base fija es 10. Tanto la mantisa como el exponente son enteros binarios de complementos a dos. (ver información mas adelante) Por ejemplo, la representación en binario de 24 bits de 38753 es 00000000 l0010111 01100001 Y la representación en binario de complemento a dos de ocho bits de -2 es 11111110; La representación de 387.53 es 00000000 10010111 01100001 11111110. Otros números reales y su representación de punto flotante son los siguientes:

0 00000000 00000000 0000000 000000000
100 00000000 00000000 0000000 100000010
0,5 00000000 00000000 0000010 111111111
0,000005 00000000 00000000 0000010 111111010
12000 00000000 00000000 0000110 000000011
-387,53 11111111 01101000 1001111 111111110
-12000 11111111 11111111 1111010 000000011

La ventaja de la notación de punto flotante es que puede usarse para representar números con valores absolutos muy grandes o pequeños. Por ejemplo, en la notación que se presentó antes, el número más grande que puede representarse es (223-1 ) x 10127 , el cual es un número muy grande en verdad. El número positivo más pequeño que puede representarse en 10-128 , el cual es muy pequeño. El factor limite de la precisión en la cual puede representar números una máquina particular es la cantidad de dígitos binarios significativos en la mantisa. No es posible representar todos los números entre el más grande y el más pequeño. Nuestra representación sólo permite 23 bits significativos. Por tanto, un número como 10 000 001 que requiere 24 dígitos binarios significativos en la mantisa tendría que aproximarse mediante 10 millones (1 x 107 ), que sólo requiere un dígito significativo.


Arriba

Enteros binarios y decimales

El método más difundido para interpretar especificaciones de bits como enteros no negativos es el sistema numérico binario. En este sistema, cada posición de bits representa una potencia de dos. La posición del bit en el extremo derecho representa 20 , lo cual es 1; la siguiente posición hacia la izquierda representa 21 , lo cual es 2; la posición inmediata representa 22 , lo cual es 4, y así sucesivamente. Un entero se representa como una suma de potencias de 2. Una cadena de sólo ceros representa el número 0. Si aparece un 1 en una posición de bit particular, se incluye en la suma la potencia de 2 representada por tal posición de bit; pero si aparece un cero, la potencia de 2 no se incluye en la suma. Por ejemplo, el grupo de bits 00100110 tiene unos en las configuraciones 1, 2 y 5 (contando de derecha a izquierda con la posición del extremo derecho considerada como 0). Por tanto, 00100110 representa el entero 21 + 22 + 25 = 2 + 4 + 32 = 38. Bajo esta interpretación, cualquier cadena de bits de longitud "n" representa un entero único no negativo entre 0 y 2n - 1 Y cualquier entero no negativo entre 0 y 2n - 1 puede representarse mediante una serie única de bits de longitud "n".


Arriba

Notación de complemento a uno

Hay dos métodos que se usan con frecuencia para representar números binarios negativos. En el primero, denominado notación de complemento a uno, se representa un número negativo cambiando cada bit en su valor absoluto a la especificación de bit opuesta. Por ejemplo, dado que 00100110 representa 38, se usa 11001001 para representar -38. Esto significa que el bit de la extrema izquierda de un número ya no se usa para representar una potencia de dos, sino se reserva para el signo del número. Una cadena de bits que empieza con un 0 representa un número positivo, en tanto que una cadena de bits que inicia con un 1 representa un número negativo. Dados n bits, el rango de números que pueden representarse es desde - 2 (n-1) + 1 (un 1 seguido por n - 1 ceros) hasta 2 (n-1) - 1 (un 0 seguido de n - 1 unos). Observe que bajo esta representación, hay dos formas de definir un número 0: un 0 "positivo" sólo tiene ceros y un 0 "negativo" sólo tiene unos.


Arriba

Notación de complemento a dos.

El segundo método para representar números binarios negativos se denomina notación de complemento a dos. En esta notación, se agrega un uno a la representación de complemento a uno de un número negativo. Por ejemplo, dado que 11011001 representa -38 en notación de complemento a uno, se usa 11011010 para representar -38 en notación de complemento a dos. Dados n bits, el rango de números que pueden representarse es -2 (n - 1) (un 1 seguido por n - 1 ceros), a 2 (n-l) - 1 (un cero seguido por n - 1 unos). Observe que 2 (n-1) puede representarse en notación de complemento a dos, pero no en notación de complemento a uno. Sin embargo, su valor absoluto 2 (n-1) no puede representarse en ninguna notación que emplee n bits. Observe también que sólo hay una representación del número 0 usando n bits en notación de complemento a dos. Para apreciar esto, considere el 0 utilizando ocho bits: 00000000. En complemento a uno es 11111111, lo cual es un cero negativo en tal notación. Agregar un 1 para producir el complemento a dos produce 100000000, lo cual tiene nueve bits de longitud. Como sólo se permiten ocho bits, se descarta el bit de la extrema izquierda (o "desbordamiento"), dejando 00000000 como menos 0.


Arriba

Decimal codificada en binario

El sistema de números binarios de ninguna manera es el único método que puede emplearse para representar números enteros. Por ejemplo, es posible emplear una cadena de bits para representar enteros en el sistema numérico decimal de la forma siguiente. Se utilizan cuatro bits para representar un dígito decimal entre O y 9 en la notación binaria descrita antes. Una cadena de bits de longitud arbitraria se divide en conjuntos consecutivos de cuatro bits, en donde cada conjunto representa un dígito decimal. Después, la cadena forma el número con los dígitos decimales de la notación decimal convencional. Por ejemplo, en este sistema, la cadena de bits 00100110 se separa en dos cadenas de cuatro bits cada una: 0010 y 0110. La primera representa el dígito decimal 2 y la segunda representa el dígito decimal 6, por lo que toda la cadena representa el entero 26. Esta representación se denomina decimal codificada en binario.

Una característica importante de la representación decimal codificada en binario de números negativos es que no todas las cadenas de bits son representaciones válidas de un entero decimal. Pueden emplearse cuatro bits para representar una de dieciséis posibilidades diferentes, dado que hay dieciséis estados posibles en un conjunto de cuatro bits. Sin embargo, en la representación de enteros decimales codificados en binario, sólo se emplean diez de las dieciséis posibilidades. Esto es, códigos tales como 1010 y 1100, cuyos valores binarios son 10 o más, no son válidos en un número decimal codificado en binario.


Arriba

Referencia bibliográfica

Estructuras de datos con C y C++
(Capitulo I)
Yedidyah Langsam /Moshe J. Augenstein / Aarón M. Tenenbaum
Prentice-Hall Hispano Americana
ISBN 968-880-798-2


Copyright 1997-2004 - La Güeb de Joaquín

Creada.....: viernes, 18 de junio de 2004

Modificada.: viernes, 18 de junio de 2004

Ultima Actualizacion de la página.:


Esta página es española