Vous êtes sur la page 1sur 5

La representación del punto Flotante de los Números Reales

Como la memoria de los ordenadores es limitada, no puedes almacenar números con


precisión infinita, no importa si usas fracciones binarias o decimales: en algún momento
tienes que cortar. Pero ¿cuánta precisión se necesita? ¿Y dónde se necesita? ¿Cuántos
dígitos enteros y cuántos fraccionarios?
Para satisfacer al ingeniero y al diseñador de circuitos integrados, el formato tiene que ser
preciso para números de órdenes de magnitud muy diferentes. Sin embargo, solo se
necesita precisión relativa. Para satisfacer al físico, debe ser posible hacer cálculos que
involucren números de órdenes muy dispares.
Básicamente, tener un número fijo de dígitos enteros y fraccionarios no es útil ─ y la
solución es un formato con un punto flotante.

¿Y Cómo funcionan los números de punto flotante?

La idea es descomponer el número en dos partes:


Una mantisa (también llamada coeficiente o significando) que contiene los dígitos
del número. Mantisas negativas representan números negativos.
Un exponente que indica dónde se coloca el punto decimal (o binario) en relación
al inicio de la mantisa. Exponentes negativos representan números menores que
uno.

Esta representación cumple todos los requisitos:

Puede representar números de órdenes de magnitud enormemente dispares


(limitado por la longitud del exponente).
Proporciona la misma precisión relativa para todos los órdenes (limitado por la
longitud de la mantisa).
Permite cálculos entre magnitudes: multiplicar un número muy grande y uno muy
pequeño conserva la precisión de ambos en el resultado.
El estándar

Casi todo el hardware y lenguajes de programación utilizan números de punto


flotante en los mismos formatos binarios, que están definidos en el estándar IEEE
754. Los formatos más comunes son de 32 o 64 bits de longitud total:

Número
Bits Bits Bits del Número
Formato más
totales significativos exponente más grande
pequeño
Precisión
32 23 + 1 signo 8 ~1.2 ⋅ 10-38 ~3.4 ⋅ 1038
sencilla
Precisión
64 52 + 1 signo 11 ~5.0 ⋅ 10-324 ~1.8 ⋅ 10308
doble

Hay algunas peculiaridades:


 La secuencia de bits es primero el bit del signo, seguido del exponente y
finalmente los bits significativos.
 El exponente no tiene signo; en su lugar se le resta un desplazamiento (127
para sencilla y 1023 para doble precisión). Esto, junto con la secuencia de
bits, permite que los números de punto flotante se puedan comparar y
ordenar correctamente incluso cuando se interpretan como enteros.
 Se asume que el bit más significativo de la mantisa es 1 y se omite, excepto
para casos especiales.
 Hay valores diferentes para cero positivo y cero negativos. Estos difieren en
el bit del signo, mientras que todos los demás son 0. Deben ser
considerados iguales aunque sus secuencias de bits sean diferentes.
 Hay valores especiales no numéricos (NaN, «not a number» en inglés) en
los que el exponente es todo unos y la mantisa no es todo ceros. Estos
valores representan el resultado de algunas operaciones indefinidas (como
multiplicar 0 por infinito, operaciones que involucren NaN, o casos
específicos). Incluso valores NaN con idéntica secuencia de bits no deben
ser considerados iguales.
Los números de coma flotante decimales normalmente se expresan en notación científica con un
punto explícito siempre entre el primer y el segundo dígitos. El exponente o bien se escribe
explícitamente incluyendo la base, o se usa una e para separarlo de la mantisa.

Mantisa Exponente Notación científica Valor en punto fijo

1.5 4 1.5 ⋅ 10^4 15000

-2.001 2 -2.001 ⋅ 10^2 -200.1

5 -3 5 ⋅ 10^-3 0.005

6.667 -11 6.667e-11 0.0000000000667


La representación de complemento 2 para punto fijo

En las matemáticas, los números negativos en cualquier base se representan del modo
habitual, precediéndolos con un signo «−». Sin embargo, en una computadora, hay varias
formas de representar el signo de un número. Este artículo trata cuatro métodos de
extender el sistema binario para representar números con signo: signo y magnitud,
complemento a uno, complemento a dos y exceso K, donde normalmente K equivale a
bn-1.
Para la mayoría de usos, las computadoras modernas utilizan típicamente la
representación en complemento a dos, aunque pueden usarse otras en algunas
circunstancias

Ejemplo de Complemento a dos


Sea una representación en formato de Complemento a dos que nos permite codificar en
binario en punto fijo con 8 bits (un byte). Al igual que con la representación en Signo y
Magnitud, y Complemento a uno, esto nos otorga 1 bit para el signo y 7 bits para la
magnitud. Con 8 bits, podemos representar, 28 = 256 números. Los cuales, según éste
formato, van a estar repartidos entre 128 números positivos (bit de signo en 0) y 128
números negativos (bit de signo en 1).
Supongamos ahora, que tenemos que representar el número -9710. Procedemos a:
Tomar nota del signo del número -9710, que siendo negativo, llevará como bit de signo un
1;
Como el signo es negativo, el número a continuación del bit de signo, deberá expresarse
en complemento a dos. Al realizar la conversión: el valor absoluto de -9710 es |-9710| =
9710. Que en binario es: 11000012, y el complemento a uno de 11000012 es
C1(1100001) = 00111102, le sumamos uno para obtener el complemento a dos:
00111102 + 00000012 = 00111112;
Colocar todo junto, el número -9710 en binario con formato de Complemento a dos es:
100111112. Donde el 1 en el bit más significativo indica un número negativo, y 00111112
es el significando en complemento a dos del valor absoluto del número.
Para el caso inverso, dado un número binario en Complemento a dos, por ejemplo,
101101012, procedemos a:
Analizar el bit más significativo, que siendo un 1 indica que el número es negativo;
Convertir el significando a la base deseada, por ejemplo, en decimal, tomando en cuenta
que: el valor obtenido está en valor absoluto, que la magnitud real estará dada por el bit
de signo obtenido antes, y que en caso de ser bit de signo negativo (como es el caso) se
deberá obtener el complemento a dos: C2(0110101) = C1(0110101) + 00000012, luego
C1(0110101) = 10010102, y al sumarle 1, 10010112 = |7510|. Siendo que el bit de signo
es 1, el número real es -7510. Si el bit de signo fuese 0, el número hubiese sido 01101012
= +5310 (sin complementar a dos).
La importancia del tema en los Métodos Numéricos

Es importante porque nos permite trabajar con valores realmente amplios de


manera que se optimice la notación de numerosos números ya que la
computadora trabaja de manera limitada permitiendo así su mayor funcionamiento.

Vous aimerez peut-être aussi