63Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Programación y Métodos NuméricosErrores de redondeo en la representación
de números reales: CODIFICACIÓN DE NÚMEROS REALES
Programación y Métodos NuméricosErrores de redondeo en la representación
de números reales: CODIFICACIÓN DE NÚMEROS REALES
Carlos Conde LCarlos Conde LáázarozaroArturo Hidalgo LArturo Hidalgo LóópezpezAlfredo LAlfredo Lóópez Benitopez Benito Febrero, 2007
64Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Expresan los números en notación científica binaria pero:
2º) Utilizando mantisas con (s+1) bits1º) Asignando (t+1) bits para almacenar el exponente.
La condición 1ª implica que sólo se pueden representar números no nulos cuyo valor absoluto esté comprendido entre ciertas cotas.Las condiciones 1ª y 2ª implican que:
* Sólo existe un número finito de números.* Las mantisas de los números reales con más dígitos
decimales deben ser aproximadas por otras con s dígitos binarios decimales.
3º) Almacenando sólo la información significativa de la mantisa
Sistemas de codificación binarios en coma flotante normalizada
Sistemas de codificación binarios en coma flotante normalizada
65Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Bit de signodel exponente
t bits para el valor absoluto del exponente
CONVENIO: 0 Signo +1 Signo -
Ejemplo: Con 7 bits se tienen las siguientes codificaciones de exponentes:
-18 = 1 42 = 00 1 0 0 1 0 1 0 1 0 1 0
-67 = No puede codificarse 93 = No puede codificarse
Codificación del exponente en (t+1) bitsCodificación del exponente en (t+1) bits
66Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Mayor exponente que puede codificarse:
M = 0 1 1 1 .. 1 1.. .. = ( 2t –1 )10
t bitsMenor exponente que puede codificarse:
m = 1 1 1 1 .. 1 1.. .. = -( 2t –1 )10
t bitsOBSERVACIÓN: En los sistemas reales estas cotas son “ligeramente”
distintas al evitarse la duplicidad del código asignado al exponente nulo y normalizarse los exponentes.
Codificación del exponente en (t+1) bits: cotas
Codificación del exponente en (t+1) bits: cotas
67Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Técnicas de aproximación de mantisas de la forma:1 2 s s 1d d ...d1 d. ....+±
por mantisas con s dígitos decimales:Truncado: 1 2 s s 1 1 2 sd d ...d d .... d d1. .1. ..d+± ≈ ±
Redondeo:1 2 s s 1
1 2 s s 1 1 2 ss 1
1. si 01. (
d d ...d dd d ...d d .... d
11.
si 0.0 0 .
d ...d)
d..1
+
++
+
± =⎧⎪± ≈ ±⎧ ⎫⎨⎨ ⎬+
=⎪⎩ ⎭⎩
“Suma binaria”NOTA: Algunos fabricantes de ordenadores incorporan también otras
técnicas
Aproximación de números reales en base 2 expresados en coma flotante normalizada
Aproximación de números reales en base 2 expresados en coma flotante normalizada
68Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Redondeo a mantisas con 6 dígitos binarios decimales:
z = 1.0110111010....
7º Dígito decimal
1. 0 1 1 0 1 1+ 0. 0 0 0 0 0 1
0
1
0
1
1
0
1
0
1
0
0
0
1. = z*
z = 1.1111111010..... 2e
7º Dígito decimal
1. 1 1 1 1 1 1+ 0. 0 0 0 0 0 1
0
1
0
1
0
1
0
1
0
1
0
1
0.
= z*
1
1
.2e
.2e
.2e
0000001. .2e+1Ajuste de exponentes:
Aproximación de números reales en base 2 expresados en coma flotante normalizada
Aproximación de números reales en base 2 expresados en coma flotante normalizada
69Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Los (s+1) bits disponibles para almacenar la mantisa se destinan a:• El primero para almacenar el signo (un 0 si es positivo yun 1 si es negativo).
• Los s bits siguientes para almacenar los s primeros dígitos binarios decimales de la mantisa.
El dígito entero de la mantisa no se almacena pues siemprees 1 (salvo para el número 0., que tiene una codificación especial).
Codificación de las mantisasCodificación de las mantisas
70Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
(-13457.258)10 = -11010010010001.01000...
13101001001000101000...1. 2≡ − i
Exponente: +1101 Mantisa: - 1.101001001000101000...
0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 1 0 0 1
Sistema con t = 7 bits para el exponente y s = 13 bits para mantisa
(redondeo)
Codificación de las mantisas: ejemploCodificación de las mantisas: ejemplo
71Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
El conjunto de todos los números expresados en base 2 queexpresados en coma flotante tienen mantisas formadas pors dígitos decimales y exponentes acotados por entre losvalores enteros m y M se denomina conjunto de números máquina del sistema:
F((s+1), m, M, 2)
Bits dela mantisa
Menor exponentepermitido
Mayor exponentepermitido
Base de numeraciónutilizada
Inicial de Float
Los números máquina binariosLos números máquina binarios
72Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
F(3, -2, 2, 2) { 2 2 2 20, 1. 2 , 1. 2 , 1. 200 01 1 , 1. 2 , 0 11− − − −≡ ± ± ± ±i i i i1 1 1 11. 2 , 1. 2 , 1. 200 ,01 1 1 20 11. ,− − − −± ± ± ±i i i i
0 0 0 0 1. 2 , 1. 2 , 00 01 1. 2 , 1.10 11 2 , ± ± ± ±i i i i1 1 1 11. 2 , 1. 2 , 1. 2 , 1. 200 01 10 1 ,1± ± ± ±i i i i
}2 2 2 2 1. 2 , 1. 2 ,00 01 10 11. 2 , 1. 21± ± ± ±i i i i
{ 0, + 2-2 , +(2-2 + 2-4) , +(2-2 + 2-3) , +(2-2 + 2-3 + 2-4) ,
+ 2-1 , +(2-1 + 2-3) , +(2-1 + 2-2) , +(2-1 + 2-2 + 2-3) ,
+ 20 , +(20 + 2-2) , +(20 + 2-1) , +(20 + 2-1 + 2-2) ,
+ 21 , +(21 + 2-1) , +(21 + 20) , +(21 + 20 + 2-1) , + 22 , +(22 + 20) , +(22 + 21) , +(22 + 21 + 20) }
≡
En base 10
EjemploEjemplo
73Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Sólo hay N = 41 números.
El mayor de ellos es C = 7.
El positivo menor no nulo es c =0.25.
No todos los números consecutivos distan lo mismo.
F(3, -2, 2, 2) ≡ { 0., +0.25 , +0.3125 , +0.375 ,
+0.4375, +0.5, + 0.625, + 0.75, + 0.875, +1.0, +1.25,
+1.5, +1.75, + 2.0, +2.5, +3.0, +3.5, + 4.0, +5.0, +6.0,
Ejemplo (cont.)Ejemplo (cont.)
+7.0 }
74Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Los números máquina de mayor valor absoluto son más distantes entre sí
Distribución de los números de F(s+1, m, M, 2)Distribución de los números de F(s+1, m, M, 2)
75Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
*) Número de números máquina de F(s+1, m, M, 2):(s 1)2 (M m )N 1 1+= − + +i
*) Mayor número máquina de F(s+1, m, M, 2):(s 1) M s(2 1 2C ) −+= − i
*) Menor número máquina positivo de F(s+1, m, M, 2):mc 2=
*) Siendo e el exponente de un número máquina positivode F(s+1,m,M,2), la distancia entre él y el siguienteen valor absoluto es: e sd 2 −=
Distribución del conjunto F(s+1, m, M, 2)Distribución del conjunto F(s+1, m, M, 2)
(Igual para negativos sustituyendo “siguiente” por “anterior”.)
76Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Sean:1
e2 s s 1d d ...d d ..z 1. 2.+= ± i (número que se aproxima)
1 2 sed d ...dz* 1. 2= ± i (número máquina de F(s+1, m, M, 2)
obtenido aproximando z por truncado)
Se verifica:e
zsz z * 2 −Δ = − ≤
sz
z z * 2Ez
−−= ≤ z 0∀ ≠
Propiedades de la aproximación de números reales por números máquina de F(s+1, m, M, 2)
mediante truncado
Propiedades de la aproximación de números reales por números máquina de F(s+1, m, M, 2)
mediante truncado
77Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Sean:1
e2 s s 1d d ...d d ..z 1. 2.+= ± i (número que se aproxima)
1 2 se'd' d' ...d'z* 1. 2= ± i (número máquina de F(s+1, m, M, 2)
obtenido aproximando z por redondeo)Se verifica:
1z
sez z * 2 − −= − ≤Δ
sz
1z z * 2z
E − −−= ≤ z 0∀ ≠
Propiedades de la aproximación de números reales por números máquina de F(s+1, m, M, 2)
mediante redondeo
Propiedades de la aproximación de números reales por números máquina de F(s+1, m, M, 2)
mediante redondeo
78Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
De las propiedades anteriores se tiene que:z 0 :∀ ≠
−
− −
⎧−= ≤ = ⎨
⎩1z
s
s
2 aproximando por truncadoz z *z 2 aproximando por redondeo
uE
UNIDAD DE REDONDEO DE F(s+1, m, M, 2)Propiedad.
z 0∀ ≠ sea z zz * z z* (1 ) z
z−
= ⇔ = +δ δ i
Se verifica que: δ ≤z u
La unidad de redondeo de F(s+1, m, M, 2)La unidad de redondeo de F(s+1, m, M, 2)
79Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
NO pueden aproximarse por un número máquina del sistemaF(F(s+1s+1, , mm, , MM, 2):, 2):
* Los números reales con valor absoluto superior o igual a:
OVERFLOW s s2
M
1
1
M
2 (truncando)(2 1) 2 (redondeando)
N+
+
− −
⎧= ⎨
−⎩ i
* Los números reales no nulos con valor absoluto inferior a:
UNDERFLO sW 2
m
ms 2
2 (truncando)(2 1) 2 (redondea )
nndo+ − −
⎧= ⎨
−⎩ i
Overflow y underflow en F(s+1, m, M, 2)Overflow y underflow en F(s+1, m, M, 2)
80Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
UNDERFLO OVERFLOWW z Nn ≤ <
OVERFLOWSi z N≥ ERROR DE OVERFLOW
UNDERFLOWSi z n< ERROR DE UNDERFLOW
ASIMILACIÓN A 0.
Sólo pueden aproximarse por números máquina no nulos del
sistema F(s+1, m, M, 2) aquellos números reales z para los
que se verifique:
Overflow y underflow en F(s+1, m, M, 2) (cont.)
Overflow y underflow en F(s+1, m, M, 2) (cont.)
81Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Exponente: 8 bits (uno para el signo)Mantisa: 24 bits (uno para el signo)• Mayor exponente:
+ (1·26 + 1·25 + 1·24 + 1·23 + 1·22 + 1·21 + 1·20) = 127
• Menor exponente: -127
• Número de números máquina:
224(127 – (-127) + 1) + 1 = 4278190081
• Mayor número máquina: (224-1)·2127-23 = 2128 - 2104≈ 3·1038
• Menor número máquina positivo: 2-127≈ 5·10-39
• Unidad de redondeo: Truncando u = 2-23 ≈ 1·10-7
Redondeando u = 2-24 ≈ 1·10-8
Ejemplo 1ºEjemplo 1º
82Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas
Exponente: 11 bits (uno para el signo)Mantisa: 53 bits (uno para el signo)• Mayor exponente:
+ (1·29 + 1·28 + ...... + 1·22 + 1·21 + 1·20) = 1023
• Menor exponente: -1023
• Número de números máquina:253(1023 – (-1023) + 1) + 1 = 18437736874454810625 ≈
18.5·1018
• Mayor número máquina: (253-1)·21023-52 = 21024 - 2971≈ 1·10308
• Menor número máquina positivo: 2-1023 ≈ 1·10-308
• Unidad de redondeo: Truncando u = 2-52 ≈ 2.1·10-16
Redondeando u = 2-53 ≈ 1.1·10-16
Ejemplo 2ºEjemplo 2º
83Departamento de Matemática Aplicada y Métodos Informáticos
Universidad Politécnica de Madrid Ingeniería de Minas