Matematica ..Sistemas de Numeracion Reales

32
Sistemas de Numeración Parte 2: Representación de Reales Lic. Andrea V. Manna

description

numeracion de sistemas reales

Transcript of Matematica ..Sistemas de Numeracion Reales

Page 1: Matematica ..Sistemas de Numeracion Reales

Sistemas de Numeración

Parte 2: Representación de Reales

Lic. Andrea V. Manna

Page 2: Matematica ..Sistemas de Numeracion Reales

Sistemas posicionales: Repaso

N= dk-1dk-2…d1d0,d-1……d-l =

dk-1*pk-1 + dk-2*pk-2 +….+ d0*p0 ,+ d-1*p-1 +....+ d-l*p-l =

k-1

Σ di * pi

i=-l

Page 3: Matematica ..Sistemas de Numeracion Reales

Sistemas posicionales: Ejemplos Representación:

1234 = 1x103+2x102+3x101+4x100

31,25 = 3x101+1x100+2x10-1+5x10-2

Decimal a binario:

En este caso tenemos un sistema (p,k,l) con p=2, k=3 y l=4

Page 4: Matematica ..Sistemas de Numeracion Reales

Sistemas posicionales: Ejemplos

Binario a Decimal:

(1101)2 = 1x23 + 1x22 + 0x21 + 1x20 = (13)10

(10,01)2 = 1x21 + 1x20 + 0x2-1 + 1x2-2 = (2,25)10

Page 5: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales

Codificar la coma decimal como para separar la

representación de la parte entera y la parte fraccionaria

En computadoras no hay precisión infinita sino aproximada.

Cantidad limitada de cifras fraccionarias error de

precisión o redondeo.

Aumentar la precisión en la parte fraccionaria sacrificar

el rango de alcance de representación

Page 6: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales

Notación de Punto Fijo, sistemas (p,k,l)

Notación de Punto Flotante

Page 7: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: Punto Fijo (p,k,l)

Forma más simple de representación de reales Se determinan una cantidad de dígitos para la

parte entera y otra para la parte fraccionaria. Limitaciones:

Números muy grandes o muy pequeños no pueden representarse

Algunos números que surgen como resultado de diferentes operaciones tampoco pueden ser representados

Ejemplos: 97600000000000000000000000000000000 0,0000000000000000000000000000002369 En un sistema (10,35,3) puedo representar el primer

número pero no el segundo

Page 8: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: Punto Flotante No hay un lugar fijo para el punto o coma

decimal. Notación Científica:

±M x B ±E

Donde:

± : Signo (positivo o negativo)

S : Mantisa (magnitud del número)

B : Base (2,4,10,16,etc)

E : Exponente (valor de la potencia de la base, usualmente en

notación exceso)

Page 9: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: Punto Fijo

Todos los sistemas estudiados anteriormente se pueden utilizar para representar números reales y la aritmética es exactamente la misma.

O sea, se tienen sistemas (p,k,l) con signo o sin signo o complemento a dos

Conclusión: No se utiliza esta forma de representación, si bien se usó en algunas computadoras primitivas

Page 10: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: Punto Flotante

Page 11: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: Punto Flotante

±M x B ±E

La base B es implícitano precisa almacenarse

Típico formato punto flotante de 32 bits:

Signo 8 Bits = Exponente 23 bits = Mantisa

Page 12: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: Ejemplos

145 = 0,145x103

145 = 14,5x101

0,0001234 = 1,234x10-4

-0,273 = -0,273x100

Problema!! : Un número puede tener diferentes representaciones Se normaliza la mantisa

Page 13: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: Normalización de Mantisa

Normalización: Define en que cifra de la mantisa se considerará la coma raíz cuando el exponente vale cero, además de lo que se asume antes y después de las cifras de la mantisa, para el caso en que existan cifras implícitas.

Esto da como resultado la Notación Científica Normalizada

Page 14: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: Normalización de Mantisa

En general, un número real x <> 0, se representa en notación científica normlizada en la forma:

x = ± m x 10e

Donde m es tal que 1 <= m < 1 y e es Entero

10

Page 15: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: Normalización de Mantisa

Del mismo modo se puede usar notación científica normalizada en el sistema binario:

x = ± m x 2e

Donde e es entero, m es la mantisa y e el exponente. Tanto m como e están representados en base 2.

Puesto que la mantisa m está normalizada, la representación binaria será:

½ <= |m| < 1 Así, un número normalizado en binario tiene la forma:

± 0,1bbbb…bbbb x 2±e con b=0 ó 1Notar que el primer dígito fraccionario es siempre 1 no es necesario representarlo. Así, si se usan 23 dígitos para la mantisa, estaríamos en verdad almacenando 24 dígitos

Page 16: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: Ejemplo

Supongamos el número 0,031510 y se desea representarlo en binario con 5 dígitos para el exponente y 8 para la mantisa

0,0312510 = 0,000012 = 0,1x2-4

¿Cómo representamos el exponente? Como es negativo deberíamos perder un bit para representar el signo lo usual es utilizar notación exceso m. En nuestro caso, el m más conveniente será 16= 24

e = -4 + 24 = 12 = 01100 ¿Cómo queda la mantisa? La calculamos en el primer paso:

10000000 ¿Cómo queda el número?

0 01100 10000000 Notar que en este caso no se tuvo en cuenta el hecho de dejar

implícito el primer bit por ser siempre 1.

Page 17: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: Conversión a punto flotante normalizado

Dado el número w que pertenece a los reales, se notará e al exponente, f a la fracción y b a la base Determinar el exponente. Se debe hallar e tal que:

be-1 <= |w| < be Determinar la fracción. Para eso:

|f| = |w| / be

Se calcula la fracción f en base b usando algún método visto.

Armar la representación del número según la convención que se haya establecido

Page 18: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: Conversión a punto flotante normalizado

Ejemplo: Hallar la representación en punto flotante normalizado del número 24,543 asumiendo que el primer bit representa el signo, los siguientes 8 bits el exponente (en notación exceso 128) y los últimos 23 bits a la fracción. Se asume base 2. En total: 32 bits Determinar el exponente:

2e-1 <= |24,543| < 2e e=5 Determinar la fracción:

|f| = | 24,543 | / 25 = 0,76696875 Calcular la fracción f en base b usando algún método visto. O sea:

|f| = 11000100010110000001000 Armar la representación del número:

Signo = 0 Exponente = 5 + 128 = 133 = 10000101 Mantisa = 11000100010110000001000

24,543 = 0 10000101 11000100010110000001000

Page 19: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: Punto flotante normalizado

La forma de representación anterior es bastante estándar:

El rango de valores representables por cada parte es: Exponente (8 bits en exceso 128): -128 ….. +127 Mantisa (23 bits normalizados 1.M): 1.000…000 y

1.1111…1111. O sea 1 y 2-2-23 El valor más negativo es -(2-2-23) x 2127

El valor más positivo es (2-2-23) x 2127

Page 20: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: Punto flotante normalizado

El gráfico muestra un esquema de la representación:

La cantidad de números representables es 232

El espacio de representación no es uniforme: hay mayor densidad cerca del cero!!!

Page 21: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: Punto flotante normalizado

La precisión depende del número de bits de la mantisa: con 23 bits hay una precisión de 7 dígitos decimales, o sea, la diferencia entre dos números es 2-23 similar a 10-7

Page 22: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: IEEE 754

Hasta 1980, cada fabricante tenía su propio sist. de representación de números en punto flotante.

Fines de la década del ’70 la IEEE (Institute of Electrical and Electronics Engineers) estableció un comité para fijar estándares

Resultado: estándar 754 de la IEEE Actualmente: la mayoría de las CPU’s poseen una

unidad de punto flotante y todas siguen el estándar fijado por IEEE

Historia: http://www.ieee.org/web/aboutus/history/index.html

Page 23: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: IEEE 754

El estándar posee varios formatos: Precisión simple (32bits): 8 exponente y 23

mantisa Precisión simple extendida (>=43bits): >=11

exponente y >=31 mantisa Precisión doble (64 bits): 11 exponente y 52

mantisa Precision doble extendida (>=80bits): >=15

exponente y >=63 mantisa Precisión cuádruple (128 bits): 15 exponente y

112 mantisa

Page 24: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: IEEE 754

Veamos el simple y el doble: Ambos comienzan con 1 bit que indica el signo Luego sigue el exponente que en p.simple se

representa en exceso 127 (8 bits) y en p.doble en exceso 1023 (11 bits)

La fracción tiene en p.simple 23 bits y en p.doble 52 bits.

La fracción binaria es 0.1bbbb…bb donde b = 0 ó 1. Este primer bit está implícito, o sea no se representa. la fracción 1.bbbb…bbb donde b = 0 ó 1 y la cantidad de dígitos dependerá de la precisión.

Page 25: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: IEEE 754 Características:

Item Precisión simple Precisión doble

Bits en el signo 1 1

Bits en el exponente 8 11

Bits en la fracción 23 52

Total de bits 32 64

Sistema del exponente Exceso 127 Exceso 1023

Rango del exponente -126 a 127 -1022 a 1023

Mínimo, normalizado 2-126 2-1022

Máximo, normalizado aprox 2+128 aprox. 2+1024

Rango decimal aprox 10-38 a 1038 aprox 10 -308 a 10 308

Mínimo, denormalizado aprox. 10-45 aprox 10.324

Page 26: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: IEEE 754

Normalizado 0 Exp Max Cualquier patrón de bits

Denormalizado 0 Cualquier patrón de bits 0

Cero 0 0

Infinito 111…1 0

NAN 111…1 Cualquier patrón de bits 0

Page 27: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: IEEE 754Algunos ejemplos en simple precisión

Page 28: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: IEEE 754

Si el resultado de una operación es menor al mínimo número de punto flotante normalizado problema.

Soluciones: Se establecía el resultado como cero y se continuaba, Se causaba una excepción de punto flotante.

Ninguna de estas es realmente satisfactoria se inventaron los números denormalizados. Estos números tienen como exponente al cero (ojo!) y el bit 1 que se hallaba implícito a la izquierda del punto binario es ahora un 0 implícito. Los números denormalizados se distinguen de lo normalizados porque estos últimos no permiten al cero como exponente.

Page 29: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: IEEE 754 Menor número normalizado: exponente 1 y fracción

0:1.0 x 2-126 Mayor número denormalizado: exponente 0 y

fracción 1: 0.999999 x 2-127 (aprox) ojo! 23 dígitos significativos en vez de 24

Menor número denormalizado: exponente 0 y fracción toda en cero menos el bit menos significativo: 2-23 2-127

Dos representaciones de cero: bit de signo en 1 o en 0

Infinito: exponente 1 y fracción 0. Se aplican reglas matemáticas en las operaciones

Infinito/Infinito: Resultado indefinido. Para este caso se usa el NAN

Page 30: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: IEEE 754. Ejemplo Hallar la representación en IEEE 754 simple precisión

del número 13,48 Determinar el exponente:2e-1 <= |13,48| < 2e e=4, pero como la fracción empieza en 1,

tomo e=e-1, o sea e=3 Determinar la fracción:

|f| = |w| / be-1 =|13,48 | / 23 = 1,685 Calcular la fracción f en base b usando algún método visto.

O sea: |f| = 10101111010111000010100

Armar la representación del número: Signo = 0 Exponente = 3 + 127 = 130 = 10000010 Mantisa = 10101111010111000010100

13,48 = 0 10000010 10101111010111000010100

Page 31: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: IEEE 754

overflow overflowunderflow

Page 32: Matematica ..Sistemas de Numeracion Reales

Representación de Números Reales: IEEE 754

Conversor online: http://www.cristalab.com/files/ejemplos/conversor/conversor.html