Está en la página 1de 6

Lección 5.

Punto flotante

MIGUEL ANGEL UH ZAPATA1


Análisis Numérico I
Facultad de Matemáticas, UADY

Agosto 2014
1 Centro de Investigación en Matemáticas, Unidad Mérida
En esta lección aprenderemos lo que es la repre-
sentación de un número en formato punto flotante.
El porqué de su definición. Su formato para
números en sistemas decimal y binario. La defini-
ción de precisión y el épsilon de la máquina,
ası́ como la representación de un número en punto
flotante con precisión simple y doble IEEE.
Análisis Numérico

Punto Flotante
La aritmética que se realiza en una calculadora o en una computadora es distinta a la aritmética de
nuestros cursos de Álgebra o Cálculo. Uno pensarı́a
√ que siempre se tuviera como enunciados ver-
daderos operaciones como 2 + 2 = 4, 4 · 4 = 16, ( 3)2 , sin embargo, la tercera no siempre se da.

En nuestro mundo matemático tradicional permitimos que existan números con una cantidad infinita
de cifras. Sin embargo, en el mundo de las computadoras, cada número representable tiene sólo un
número finito de cifras. Esto significa que sólo
√ los números enteros y algunos numéros racionales se
pueden presentar con exactitud. Puesto que 3 no es racional, se da una representación aproximada,
uno cuyo cuadrado no es 3, aunque si lo bastante cercano a 3 para que sea aceptable en la mayor parte
de las situaciones.

1. Números punto flotante


Todos los números deben ser guardados en la computadora y además operaciones aritméticas deben
ser ejecutadas con estos números. La mayorı́a de las computadoras tiene dos maneras de guardar estos
números: en formato de enteros y en formato de punto flotante. Los enteros son relativamente directos
y no los vamos a considerar aquı́. El formato punto flotante es una forma más general permitiendo
almacenar números que no son enteros, y en esta sección definiremos el formato punto flotante.
A continuación discutiremos el formato más popular usado actualmente por las computadoras en
binario, pero empezaremos con el formato punto flotante para números decimales.

1.1. Formato punto flotante para números decimales


Para simplificar la explicación de punto flotante de un número, consideremos un número diferente a
cero x escrito en el sistema decimal.

Un número x puede ser escrito de manera única como

x = σ · x̄ · 10e (1)

donde σ = +1 o −1, e es un entero, y 1 ≤ x̄ ≤ 10. Estos tres números son llamados


signo, exponente (también llamado caracterı́stica) y significante de la representación (1)
respectivamente. El significante también es llamado mantisa en muchos libros de texto.

Ejemplo.
Consideremos el número
124.62 = (1.2462) · 102 ,
con el signo σ = +1, el exponente e = 2, y el significante x̄ = 1.2462. El formato (1) es usualmente
llamado notación cientı́fica en libros de texto de matemáticas de nivel básico o en otras ciencias.

La representación de punto flotante de números decimales está básicamente dada por (1),
con limitaciones en el número de dı́gitos en x̄ y en el tamaño de e.

Ejemplo.
Supongamos que limitamos el número de dı́gitos de x̄ a cuatro y el tamaño de e entre −99 a 99.
Decimos que una computadora con tal representación tiene una aritmética de cuatro dı́gitos decimales
punto flotante.

OBSERVACIÓN:

Punto flotante 3
1.2 Formato punto flotante en binario Análisis Numérico

Como un corolario a las limitaciones de la longitud de x̄, nosotros no podemos


garantizar que guardaremos de manera precisa (exacta) más que los primeros 4
dı́gitos de un número, y más aún los cuatro dı́gitos necesitan ser cambiados por
redondeo (el cual definiremos más precisamente más adelante).

Porque la aritmética decimal es más intuitiva para la mayorı́a de las personas, ocasionalmente ilus-
traremos varias ideas usando aritmética de punto flotante decimal más que aritmética de punto flotante
binaria.

1.2. Formato punto flotante en binario


Iniciemos dando una breve introducción al sistema de números binarios y su conversión al sistema
decimal.

El sistema binario representa todos los números como una suma de múltiplos de enteros
potencias de 2. Hay únicamente dos dı́gitos: 0 y 1; y 2 es la base del sistema binario.

Ejemplo.
El siguiente número x en el sistema binario tiene el valor

(1101.11)2 = 1 · 23 + 1 · 22 + 1 · 21 + 0 · 20 + 1 · 2−1 + 1 · 2−2 (2)

en el sistema decimal. Por claridad cuando discutimos un número con respecto a diferente base,
nosotros encerramos el número entre paréntesis y escribimos la base con subı́ndice. En este caso,

(1101.11)2 = (13.75)10

OBSERVACIONES:
Normalmente un número sin paréntesis es un número en base 1.
En general, para convertir un número binario a su equivalente en sistema decimal procedemos
de manera similar a la hecha en (2).

Ahora consideremos un número x escrito en forma binaria. Análogamente con (1), pode-
mos escribir
x = σ · x̄ · 2e (3)
donde σ = +1 o −1, e es un entero, y x̄ es una fracción binaria satisfaciendo

(1)2 ≤ x̄ ≤ (10)2 .

En decimal 1 ≤ x̄ ≤ 2.

Ejemplo.
Consideremos
x = (11011.0111)2 = (1.10110111)2 · 24 ,
entonces σ = +1, e = 4 = (100)2 y x̄ = (1.10110111)2 .

OBSERVACIÓN:
Notar que para todo número x 6= 0 el primer dı́gito de la izquierda del punto en x̄ es siempre 1.

La representación de punto flotante de un número binario x consiste de (3) con una restric-
ción en el número de dı́gitos binarios en x̄ y en el tamaño de e.

Punto flotante 4
Análisis Numérico

2. Precisión
El número permitido de dı́gitos binarios en x̄ es llamado precisión de la representación de
punto flotante binario.

El épsilon de la máquina (cero de la máquina) es una manera de medir que tan preciso
puede ser guardado un número en la representación de punto flotante utilizada. El épsilon
de la máquina consiste de la diferencia entre el 1 y el siguiente número más grande que
puede ser guardado en ese formato. En las siguientes subsecciones veremos unos ejemplos.

El estándar IEEE para la aritmética en punto flotante es el formato para números puntos flotante usado
casi en todas las computadoras actuales. Por ejemplo, todos los procesadores Intel usan este formato.
A continuación presentaremos dos formatos estándar IEEE: simple y doble.

2.1. Precisión simple


En este estándar, la representación de punto flotante de precisión simple IEEE de un número x tiene
una presición de 24 dı́gitos binarios y el exponente es limitado a −126 ≤ e ≤ 127:
x = σ · (1.a1 a2 a3 · · · a22 a23 ) · 2e (4)
En binario,
−(1111110)2 ≤ e ≤ (1111111)2
este formato usa 4 bytes (32 bits) y el esquema de guardado esta bosquejado en la siguiente tabla

b1 b2 b3 · · · b9 b10 b11 · · · b32


|{z} | {z } | {z }
σ E x̄

El signo σ es guardado en un bit b1 (b1 = 0 para σ = +1 y b1 = 1 para σ = −1). Definimos


E = e + 127 como el valor del exponente desplazado 127 lugares. Más que e, se guarda el entero
binario positivo E en los bits de b2 a b9 . El número binario a1 a2 · · · a23 son guardados en los bits de
b10 a b32 .
El primer dı́gito binario 1 de x̄ no es guardado en la representación de punto flotante cuando
el número es guardado en la memoria, pero este dı́gito es insertado en x̄ cuando un número en
punto flotante es llamado de la memoria para ejecutar alguna operación aritmética.
Necesitamos una representación especial del número x = 0, este es guardado como E = 0 con
σ = 0 y b1 b2 · · · b32 = (00 · · · 0)2 .
En precisión simple, el número 1 es representado por
1.00000000000000000000000
y el siguiente número binario más grande es
1.00000000000000000000001
con el dı́gito final binario 1 en la posición 23 a la parte derecha del punto. Ası́ el épsilon de la
máquina es 2−23 . Entonces
2−23 ≈ 1,19 × 10−7 ,
ası́ decimos que el formato IEEE de precisión simple puede ser usado para aproximar de 7
dı́gitos decimales de un número x cuando es escrito en su formato decimal.

Punto flotante 5
2.2 Precisión doble Análisis Numérico

2.2. Precisión doble


La representación de punto flotante de precisión doble IEEE de un número x tiene una precisión de
53 dı́gitos binarios y el exponente es limitado a −1022 ≤ e ≤ 1023:

x = σ · (1.a1 a2 a3 · · · a51 a52 ) · 2e . (5)

La precisión doble utiliza 8 bytes (32 bits) y los números son guardados siguiendo el esquema de la
siguiente tabla

b1 b2 b3 · · · b12 b b ···b
|{z} | {z } |13 14{z 64}
σ E x̄

Los bits son guardados de manera análoga a la precisión simple pero con E = e + 1023.

El épsilon de la máquina en precisión doble es 2−52 ≈ 2,22 × 10−16 . Ası́ el formato en


doble precisión puede ser usado para guardar aproximadamente 16 dı́gitos de un número x. En
Matlab, el épsilon de la máquina es disponible con el comando llamado eps.

Punto flotante 6

También podría gustarte