Matematica ..Sistemas de Numeracion Reales
-
Upload
harold-cristopher-cortez-cercado -
Category
Documents
-
view
218 -
download
0
description
Transcript of Matematica ..Sistemas de Numeracion Reales
Sistemas de Numeración
Parte 2: Representación de Reales
Lic. Andrea V. Manna
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
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
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
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
Representación de Números Reales
Notación de Punto Fijo, sistemas (p,k,l)
Notación de Punto Flotante
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
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)
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
Representación de Números Reales: Punto Flotante
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
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
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
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
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
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.
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
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
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
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!!!
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
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
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
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.
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
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
Representación de Números Reales: IEEE 754Algunos ejemplos en simple precisión
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.
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
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
Representación de Números Reales: IEEE 754
overflow overflowunderflow
Representación de Números Reales: IEEE 754
Conversor online: http://www.cristalab.com/files/ejemplos/conversor/conversor.html