Sie sind auf Seite 1von 28

Representacion de Numeros Reales

Mara Elena Buemi

15 abril de 2011
Introducci
on a la Computaci
on

Representacion de Numeros Reales

Como se representa un n
umero real?

Un numeral con parte entera y parte fraccionaria

Dos maneras de representarlos: con Punto Fijo y con Punto


Flotante.

Punto Fijo: se asigna una cantidad fija de dgitos para la


parte entera y una cantidad fija para la parte fraccionaria.

Problemas! no premite representar n


umeros muy grandes o
muy peque
nos, al no ser flexible, cuando se hacen algunas
operaciones donde hay acarreo se pierde precision.

Representacion Punto Fijo, pasar 32, 75 a base 2,


con 16 dgitos, 8 para parte entera y 8 para parte
fraccionaria
I

Pasar parte entera binario


3210 = 1000002 = 1 25 + 0 24 + 0 23 + 0 22 + 0 21 + 0 20

Pasar fraccion decimal a binario


0.7510 = 0.112
Dado que :
0.75 2 = 1.25
0.50 2 = 1.00
0.0 2 = 0.0
parte entera
00100000

parte fraccionaria
.11000000

Notacion Cientfica

d X Base Exponente
I

d, un solo dgito distinto de 0, tal que d Base

Base: 2, 10,16,...

Exponente u Orden de magnitud

Representacion en Punto Flotante

Mantisa

z }| {
Exponente

{z
}
| d.d . . . d Base
Formato

Donde:
Mantisa
B

Precisi
on
Base

y

d0 B 0 + d1 B 1 + . . . + dp1 B (p1) B Exponente , 0 di < B

Distintas formas de representar 32, 75 con 16 dgitos


binarios

Punto fijo: 00100000.11000000

Notacion Cientfica 1.000001100000000x105

Notacion Punto flotante de 32 binarios


1.0000011000000000000000000000000x105

Formato Punto Flotante de 32 bits

Sea una tira de 32 bits distribuidos de modo que:


1 bit signo, 8 bits para el exponente(exceso 127), 23 bits mantisa
exponentemin = 126, exponentemax = 127, normalizado 1.

Exceso 127
8 bits
00000000
00000001
00000010
...
01111110
01111111
10000000
10000001
10000010
...
11111101
11111110
11111111

Exceso 127
127
126
125
...
1
0
1
2
3
...
126
127
128

Aritmetica de punto flotante


Suponemos operaciones suma y resta entre dos operandos.
Asegurar que ambos tienen el mismo exponente.
Problemas
I

Exponente Overflow: Si el exponente excede el maximo >


+o

Exponente Underflow: Si exponente es mas peque


no que el
minimo devuelve 0.

Mantisa Underflow: el caso cuando agrego bits para alinear,


operar y el resultado es muy peque
no, excede los bits del
formato, entonces se aplica un forma de redondeo.

Mantisa Overflow: puede ocurrir cuando se operen con 2 del


mismo signo.

IEEE Institute of Electrical and Electronics Engineers

Standard IEEE 754


Permite intercambios entre distintas arquitecturas

Standard IEEE 754

Parametro

Simple

signo + mantisa
emax
emin
Bits Exponente(exceso)
Cant. bits

24
+127
-126
8
32

Formato
Doble
Simple
Extendido
53
32
+1023
1023
-1022
-1022
11
11
64
43

Doble
Extendido
64
>16383
-16382
15
79

Observaciones sobre el exponente, caso simple precision

emax = 127 y emin = 126. Motivo para tener |emin | < emax
es para que el recproco del n
umero mas peque
no no
desborde, (overflow).

emin 1 se utiliza para representar 0

emax + 1 para cantidades especiales

emax = 127 y emin = 126, aunque en la representacion de


exponentes el mnimo (el 0 en notacion sin signo )corresponde
al 127 y el maximo a 128(corresponde al 255 sin signo).

Representaciones de IEEE 754

Exponente
e = emin 1
e = emin 1
emin e emax
e = emax + 1
e = emax + 1

Mantisa
m=0
m 6= 0
--m=0
m 6= 0

Representacion
0
0.m x 2emin
1.m x 2e

NaN

Tabla: IEEE754 Valores especiales

Pasar un numero decimal a IEEE 754


I

Supongamos: 33.75

Recordar que IEEE 754 el exponente esta expresado en


notacion exceso 127
emin = 126 y emax = 127

Parte entera 33 = 100001

Pasar fraccion decimal a binario


0.7510 = 0.112
Dado que :
0.75 2 = 1.25
0.50 2 = 1.00
0.0 2 = 0.0

33.75 = 100001.110 = 1.00001110X 25 =


1.00001110X 210000100 ya que 5 = 132-127 en notacion exceso
127 por lo tanto el 5 se representa como el 132 =
1 27 +0 26 +0 25 +0 24 +0 23 +1 22 +1 21 +1 20

Pasar Decimal a IEEE 754 Ejemplo

Supongamos: 3.75
signo
0

exponente
1000 0000

mantisa
1.1110 . . . 0

En bits 0100 0000 0111 0000 0000 0000 0000 0000


en Hexa: 40 70 00 00
Pasar parte entera a binario.
Pasar parte fraccionaria a binario.
Modificar el exponente hasta que quede un dgito entero distinto
de cero

Casos especiales provenientes de la aritmetica

Cero con signo

Infinito

NAN

Desnormalizados

Cero con Signo

Exponente
e = emin 1

Mantisa
m=0

Representacion
0

Tabla: Formato de cero con signo

Dos tipos de ceros +0 y 0

Ejemplo: 3 (+0) = +0 y +0 / 3 = 0.

Infinitos
Exponente
e = emax + 1

Fracci
on
m=0

Representacion

Tabla: Formato de infinito

5 + (+) = +
5 (+) =
5 + () =
5 () = +
5 (+) = +

5 (+) = +0
(+) + (+) = +
() + () =
() (+) =
(+) () = +

Tabla: Ejemplos

NAN Not a Number


Exponente
e = emax + 1

Fracci
on
m 6= 0

Representacion
NaN

Tabla: Formato de NAN

Operaci
on
+
x
/
REM

NAN producido por


+ ()
0x
0/0, /
x REM 0, REM y

x(when x < 0)

Tabla: Operaciones que producen NAN

Numeros Desnormalizados, underflow gradual


Exponente
e = emin 1

Fracci
on
m 6= 0

Representacion
0.mx2emin

Tabla: Formato de n
umeros desnormalizados

Numeros Desnormalizados, underflow gradual Ejemplo

Supongamos: B = 10, p = 3, y emin = 98


Op110
6.87 1097

Op210
6.81 1097

Diferencia10
.06 1097 = 6.0 1099

Tabla: Ejemplo numerico de desnormalizacion

Su representacion desnormalizada es 0.6 1098

Resolucion con un convertidor IEEE 754

Lenguaje C: float, printf y %f , Python print %f ,0 %.2f 0


En la declaracion de variables f indica una variable de tipo float
Dentro del printf, %f imprime una variable de tipo float

En Python
>>> r=23.456787
>>> print %2.f %r
>>> 23
>>> print %.2f %r
>>> 23.45
>>> print %.4f %r
>>> 23.4567
print %2.f 2.344
Si pro es una variabe de tipo float
print float(pro)

Algoritmo en C para calcular el promedio, con 2 digitos


decimales

Algoritmo en Python

Ejercicio hacer un algoritmo en C y en Python

n
X
1
i=0

Mostrar para n= 5, 10, ...., 100, con 2 y con 4 digitos.

(1)

Bibliografa

What Every Computer Scientist Should Know About


Floating-Point Arithmetic
http : //docs.sun.com/source/806 3568/ncg goldberg .html(1991)
Computer Organization and Architecture: Designing for
Performance,8/E William Stallings.
ISBN-10: 0136073735. ISBN-13: 9780136073734 Publisher:
Prentice Hall. Copyright: 2010
Conversor IEEE 754 http : //www .zator .com/Cpp/E 2 2 4a1.htm

Das könnte Ihnen auch gefallen