Está en la página 1de 3

IEEE coma otante

El estndar del IEEE para aritmtica en coma otante (IEEE 754) es el estndar ms extendido para las
computaciones en coma otante, y es seguido por muchas
de las mejoras de CPU y FPU. El estndar dene formatos para la representacin de nmeros en coma otante
(incluyendo el cero) y valores desnormalizados, as como
valores especiales como innito y NaN, con un conjunto
de operaciones en coma otante que trabaja sobre estos
valores. Tambin especica cuatro modos de redondeo y
cinco excepciones (incluyendo cundo ocurren dichas excepciones y qu sucede en esos momentos).

zado mediante la suma de 127 para obtener un valor en el


rango 1 a 254 (0 y 255 tienen valores especiales descritos ms adelante). Cuando se interpreta el valor en coma
otante, el nmero es desplazado de nuevo para obtener
el exponente real.
El conjunto de valores posibles pueden ser divididos en
los siguientes:
ceros
nmeros normalizados

IEEE 754 especica cuatro formatos para la representacin de valores en coma otante: precisin simple (32
bits), precisin doble (64 bits), precisin simple extendida ( 43 bits, no usada normalmente) y precisin doble
extendida ( 79 bits, usualmente implementada con 80
bits). Slo los valores de 32 bits son requeridos por el estndar, los otros son opcionales. Muchos lenguajes especican qu formatos y aritmtica del IEEE implementan,
a pesar de que a veces son opcionales. Por ejemplo, el
lenguaje de programacin C, ahora permite pero no requiere la aritmtica del IEEE (el tipo de C oat es tpicamente usado para la precisin simple del IEEE y el tipo
double usa la precisin doble del IEEE).

nmeros desnormalizados
innitos
NaN (E, no es un nmero, como por ejemplo, la
raz cuadrada de un nmero negativo)
Las clases se distinguen principalmente por el valor del
campo Exp, siendo modicada sta por el campo fraccin. Considera Exp y Fraccin como campos de nmeros binarios sin signo (Exp se encuentra en el rango 0
255):
Para nmeros normalizados, los ms comunes, Exp es el
exponente desplazado y Fraccin es la parte fraccional del
signicando . El nmero tiene valor v:

El ttulo completo del estndar es IEEE Standard for


Binary Floating-Point Arithmetic (ANSI/IEEE Std
754-1985), y tambin es conocido por IEC 60559:1989,
Binary oating-point arithmetic for microprocessor
systems (originalmente el nmero de referencia era IEC
559:1989).

v = s 2e m
Donde
s = +1 (nmeros positivos) cuando S es 0
s = 1 (nmeros negativos) cuando S es 1

1
1.1

e = Exp + 127 (en otras palabras, al exponente se le suma


127 y se almacena, a esto tambin se le llama biased with
127 en ingls)

Anatoma de un nmero en coma


otante

m = 1,Fraccin en binario (esto es, el signicando es el


nmero binario 1 seguido por la coma decimal seguido
por los bits de Fraccin). Por lo tanto, 1 m < 2.

Precisin simple 32-bits

Un nmero en coma otante de precisin simple se alma- Notas:


cena en una palabra de 32 bits.
1 8 23 <-- tamao en bits +-+--------+----------------------+ |S| Exp | Mantisa | +-+--------+-----------------------+ 31
30 23 22 0 <-- ndice del bit (0 a la derecha) desplazado
+127
donde S es el bit de signo y Exp es el campo exponente.
(Para el signo: 0=Positivo ; 1= Negativo).

1. Los nmeros desnormalizados son iguales excepto


que e = 126 y m = 0,Fraccin. (e NO es 127
: el signicando ha de ser desplazado a la derecha
por un bit ms, de forma que incluya el bit principal,
que no siempre es 1 en este caso. Esto se equilibra
incrementando el exponente a 126 para el clculo.)

El exponente es desplazado en el un nmero en precisin


simple, un exponente en el rango 126 a +127 es despla-

2. 126 es el menor exponente para un nmero desnormalizado


1

3
3. Hay dos ceros. +0 (S es 0) y 0 (S es 1)

3 Enlaces externos

4. Hay dos innitos + (S es 0) y (S es 1)

Referencias IEEE 754

5. Los NaN s pueden tener un signo y un signicando,


pero estos no tienen otro signicado que el que puedan aportar en pruebas de diagnstico; el primer bit
del signicando es a menudo utilizado para distinguir NaN s sealizados de NaN s silenciosos

Lets Get To The (Floating) Point por Chris Hecker

6. los NaNs y los innitos tienen todos los bits a 1 en


el campo Exp.

1.2

Ejemplo

Codiquemos el nmero decimal 118,625 usando el


sistema IEEE coma otante.
Necesitamos obtener el signo, el exponente y la fraccin.
Dado que es un nmero negativo, el bit de signo es 1.
Primero, escribimos el nmero (sin signo, es decir
118,625) usando notacin binaria. Consulta el sistema de
numeracin binario para ver cmo hacer esto. El resultado es 1110110,101.
Ahora, movamos la coma decimal a la izquierda, dejando
slo un 1 a su izquierda.
1110110,101=1,11011010126 Esto es un nmero en coma otante normalizado.
El signicante es la parte a la derecha de la coma decimal,
rellenada con ceros a la derecha hasta que obtengamos
todos los 23 bits. Es decir 11011010100000000000000.
El exponente es 6, pero necesitamos convertirlo a binario
y desplazarlo (de forma que el exponente ms negativo
es 0, y todos los exponentes son solamente nmeros binarios no negativos). Para el formato IEEE coma otante,
el desplazamiento es 127, as es que 6 + 127 = 133. En
binario, esto se escribe como 10000101.
Poniendo todo junto:
1 8 23 <-- Tamao en bits +-+--------+----------------------+ |S| Exp | Signicante |
|1|10000101|11011010100000000000000|
+-+-------+-----------------------+ 31 30 23 22 0 <-- ndice del bit
(0 a la derecha) desplazado +127

ENLACES EXTERNOS

Vase tambin
Notacin cientca
Coma otante
Tipo de dato real
Intel 8087. El coprocesador numrico de donde surgi iniciativa para el estndar IEEE 754

What Every Computer Scientist Should Know


About Floating-Point Arithmetic by David Goldberg - una buena introduccin y explicacin.
Curso de Representacin de los Datos de Carlos Pes
Comparing oating point numbers Bruce Dawson
Calculadora de nmeros binarios en coma otante

Origen del texto y las imgenes, colaboradores y licencias

4.1

Texto

IEEE coma otante Fuente: https://es.wikipedia.org/wiki/IEEE_coma_flotante?oldid=86034394 Colaboradores: Cucharro, Toad32767,


Ecemaml, Emijrp, LeCire, Arifotos13, RobotQuistnix, Chobot, Yrbot, BOTijo, GermanX, Equi, C-3POrao, Dkmaster, Paval~eswiki,
Calsbert, Aleator, CEM-bot, Gejotape, Gafotas, Thijs!bot, Mahadeva, BotOn, JAnDbot, Muro de Aguas, Rei-bot, Aibot, Matdrodes, AlleborgoBot, Muro Bot, Edmenb, SieBot, Spifxx, Loveless, Marcelo, Aleposta, JaviMad, Alcachi, Piero71, LordT, Aipni-Lovrij, AVBOT,
RiKu-IrVinG, Roinpa, La Corona, Elantol, SuperBraulio13, Jkbw, Jluini, PatruBOT, WikitanvirBot, !Silent, KLBot2, Acratta, Androidedev, Robert2183, Harvic3, Jarould y Annimos: 109

4.2

Imgenes

4.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0