2 Aritmetica Del Computador

46
Aritmetica del Computador Universidad Nacional Mayor de San Marcos Facultad de Ingenieria Industrial Métodos Computacionales Mg. Hermes Pantoja Carhuavilca

Transcript of 2 Aritmetica Del Computador

Page 1: 2 Aritmetica Del Computador

Aritmetica del Computador

Universidad Nacional Mayor de San MarcosFacultad de Ingenieria Industrial

Métodos ComputacionalesMg. Hermes Pantoja Carhuavilca

Page 2: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Agenda

Introducción

Aritmetica del Computador

Page 3: 2 Aritmetica Del Computador

46

Aritmetica delComputador

3 Introducción

Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Sistema de Numeración

Representación de enterosBase Binaria (2)

I 2 ”bits” [0,1]I 1011 en base 2 = 1× 23 + 0× 22 + 1× 21 + 1× 20

= 8+ 0+ 2+ 1 = 11 en base decimalSea N un número entero en base β tal que:

N = (anan−1an−2 . . . a2a1a0)β =n∑

k=0ak ∗ βk

Page 4: 2 Aritmetica Del Computador

46

Aritmetica delComputador

4 Introducción

Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Sistema de Numeración

Representación de números fraccionariosx = 0.7 =

710 = 7× 10−1

x = 0.75 = 0.70+ 0.05 = 7× 10−1 + 5× 10−2

Sea x un número fraccionario en base β tal que:

x = (0.b1b2b3 . . . bn)β = b1×β−1+b2×β−2+ . . .+bn×β−n

Base decimal (10)I Potencia negativa de 10 para parte fraccionaria.I 54.32 = 5× 101 + 4 ∗ 100 + 3× 10−1 + 2× 10−2

Page 5: 2 Aritmetica Del Computador

46

Aritmetica delComputador

5 Introducción

Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Otros sistemas de numeración

I Mayor interes en decimal (10) y binario (2)Uso en computadores

I Otros sistemasoctal (8), {0, 1, 2, ..., 7}hexadecimal (16), {0, 1, 2, ..., 9,A,B,C ,D,E ,F}

Page 6: 2 Aritmetica Del Computador

46

Aritmetica delComputador

6 Introducción

Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Conversión entre bases: ejemplos

Page 7: 2 Aritmetica Del Computador

46

Aritmetica delComputador

7 Introducción

Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Conversión entre bases: ejemplos

Page 8: 2 Aritmetica Del Computador

46

Aritmetica delComputador

8 Introducción

Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Page 9: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

9 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Sistema de Punto Plotante

Definición (Sistema de Punto Flotante)Un sistema de punto flotante se especifica por la base β, ellargo de mantisa t, y límites para los exponentes de L,M.Un número de punto flotante tiene la forma

x = ±0.b1b2 . . . bt × βe

donde 0.b1b2 . . . bt es la mantisa, b1 6= 0 (para x 6= 0),0 ≤ bi ≤ β − 1 para 2 ≤ i ≤ t, y e el exponente el cualsatisface L ≤ e ≤ U. El cero se representa con mantisa ceroy exponente cero. El sistema de punto flotante se representapor

F (β, t, L,U)

Page 10: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

10 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

EjemploTomando (β, t, L,U) = (10, 2,−1, 2), tenemos 90 posiblesmantisas, y 4 exponentes, i.e., −1, 0, 1, 2. Como hay dosposibles signos, tenemos un total de 2(90)(4) + 1 = 721números en el sistema.Nótese que el sistema de punto flotante es finito.El Sistema de los números reales tiene a R como un conjuntoinconmensurable porque no es posible representarlos a todos.El Sistema de Punto Flotante es un subconjunto F ⊂ R denúmeros reales.

Page 11: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

11 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Definición (Cardinalidad)Cardinalidad de F (β, t, L,U):

2(β − 1)βt−1(U − L+ 1) + 1

Ejemplo¿Cúantos números tendrá el sistema F(2,3,-1,2)?

Page 12: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

12 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

EjercicioDado el sistema de punto flotante F (2, 2,−1, 2)1. 0.5 ∈ F?2. 3/4 ∈ F?3. 0.5+ 3/4 ∈ F?

Page 13: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

13 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Puesto que la cantidad de números a almacenar es unacantidad finita, la mayoría de números reales tendrán que seraproximados a aquellos que tienen una representación exactaen el sistema de punto flotante empleado. Esto origina lasperdidas de precisión por redondeo.

Page 14: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

14 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Errores en el Computador

Los científicos que desarrollaron el cohete Ariane 5 vuelo 501reutilizaron parte del código de su predecesor, el Ariane 4,pero los motores del cohete más nuevo incorporarontambién, sin que nadie se diera cuenta, un “bug” en unarutina aritmética en la computadora de vuelo. Esto provocó,el 4 de junio de 1996, que la computadora fallara segundosdespués del despegue del cohete; 0,5 segundos más tardefalló el ordenador principal de la misión. El Ariane 5 sedesintegró 40 segundos después del lanzamiento.

Page 15: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

15 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Aritmetica del Computador

Las operaciones de suma, resta, multiplicación y división enel sistema de punto flotante (F), se denota por ⊕,,⊗,�respectivamente. Estas operaciones están definidas por:x ⊕ y = fl(fl(x) + fl(y))x y = fl(fl(x)− fl(y))x ⊗ y = fl(fl(x)× fl(y))x � y = fl(fl(x)÷ fl(y)), fl(y) 6= 0, y 6= 0Estas operaciones no son cerradas sobre F, pues en algunoscasos se genera underflow u overflow;

Page 16: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

16 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

EjemploDado el sistema hipotético F (10, 3,−3, 3) y los números:X = 2/30 = 0.066666 . . .Y = 5/9 = 0.55555 . . .hallar X ⊗ YSolución:Valor Exacto de X ∗ Y = 10/270 = 0.037037037 . . .fl(X ) = 0.667× 10−1

fl(Y ) = 0.556× 100

fl(X )∗fl(Y ) = 0.667×10−1 ∗0.556×100 = 0.370852×10−1

x ⊗ y = fl(fl(X ) ∗ fl(Y )) = 0.371× 10−1

Error=10−4

Page 17: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

17 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Desbordamiento

Se puede producir cuando se operan dos datos y el resultadoexcede la capacidad de almacenamiento seleccionada.

Definición (Overflow)Se produce cuando el número es muy grande y se excede ellímite máximo de almacenamiento.

Definición (Underflow)Se produce cuando el número es muy prqueño y se execedeel límite mínimo de almacenamiento.

Page 18: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

18 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

El Épsilon (ε) de la Máquina

DefiniciónEl épsilon de la máquina es la distancia entre 1 y el siguientenúmero máquina, se denota por eps.

Page 19: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

19 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Ejercicio

Sea F el sistema de punto flotante caracterizado porβ = 2,(base), n = 4(precisión), m = −1, M = 2, cadanúmero en el conjunto F está representado por±(.d1d2 . . . , dn)ββ

e donde m ≤ e ≤ M1. Cuál es el número más pequeño en valor absoluto del

sistema F?2. Demuestre que 3/4 y 5/6 pertenecen al sistema F, pero

la suma "verdadera" de estos no pertenece a F.3. Suponga que el tipo de error introducido en la

representación de un número real en el sistema F es porredondeo. Como queda representado el numero3/4+ 5/16 en F. esto es:

34 ⊕

516 = fl(34 +

516) =???

4. Encuentre el epsilon de la maquina.

Page 20: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

20 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Ejercicio

Recordar que ”fl(expresion)” significa que todos losoperandos son convertidos a números en punto flotante ytodas las operaciones son desarolladas con la aritmética delpunto flotante. Asuma β = 10, t = 3, L = −3, U = 4, y laaritmética es truncada. Obtener los valores de:1. fl(0.00009)2. fl(3.146)3. fl(9996)4. fl((100.0+ 0.61) + 0.61) y fl(100.0+ (0.61+ 0.61))5. fl(2.34× (5.67+ 8.90)) y

fl((2.34× 5.67) + (2.34× 8.90))

Page 21: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

21 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Sistema de Punto Flotante

Es el conjunto de números de punto flotante normalizados,en el sistema de números con base β con t dígitos para lafracción (equivalentemente t + 1 dígitos en la mantisa)

F (β, t, L,U) = {a = ±a0.a1a2 . . . at × βe}{∣∣∣∣∣ a < a0 < β L ≤ e ≤ U0 ≤ ai < β i = 1, 2, . . . , t

}∪

0. 00 . . . 0︸ ︷︷ ︸t veces

La cantidad de números de punto flotante, que admite elsistema numérico F (β, t, L,U) es2(β − 1)βt(U − L+ 1) + 1

Page 22: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

22 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Representación de números del computador

Los computadores trabajan con aritmética real usando unsistema denominado de ”punto flotante”. Suponen unnúmero real que tiene la expansión binaria:Número Normalizado

Page 23: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

23 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Notación Normalizada

Page 24: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

24 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Ejemplo

Page 25: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

25 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Almacenamiento de floats

Ejemplo

Page 26: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

26 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Almacenamiento de floats

I Mayor número positivo 0 110 1111 = +23 × 1.1111 =23 × (2− 2−4) = 1111.1 = 15.5 decimal

I Menor número positivo0 001 0000 = +2−2 × 1.0000 = 2−2 × 20 = 0.01 ó 0.25decimal

Page 27: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

27 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Almacenamiento de floats

Combinaciones especiales de los exponentes:000 Representación No Normalizada

I Mansitisa pasa a ser: 0.I Exponente(000)=-2I Menor número positivo pasa a ser

0 000 0001 = 2−2 × 0.0001 = 2−2 × 2−4 = 2−6 =0.015625

Page 28: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

28 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Además de las combinaciones especiales...111 representación de infinito

I 01110000 = +InfinitoI 11110000 = −InfinitoI 11111000 =IndeterminaciónI Otras combinaciones 11111−−−=Not A Number

(NaN)

Page 29: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

29 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Distribución de los datos en la recta numérica

Page 30: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

30 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Distribución de Números Puntos Flotante

Los números punto flotante no son uniformente distribuidossobre el eje real, como en el caso continuo. Veamos para elsistema F (2, 2,−2, 1).

Page 31: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

31 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Estándar IEEE-754

Este estándar se desarrolló para facilitar la portabilidad de losprogramas de un procesadora otro y para alentar el desarrollode programas numéricos sofisticados. Este estándar ha sidoampliamente adoptado y se utiliza prácticamente en todoslos procesadores y coprocesadores aritméticos actuales.

Page 32: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

32 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Estándar IEEE-754

I El estándar del IEEE define el formato para precisiónsimple de 32 bits y para precisión doble de 64 bits.

I Hasta la década de los 90 cada computador utilizaba supropio formato en punto flotante, en 1985 se introduceel estándar IEEE-754 con la finalidad de uniformizarlos.

Page 33: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

33 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Estándar IEEE-754

Precisión Simple: 32 bits

Page 34: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

34 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Estándar IEEE-754

Page 35: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

35 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Ejemplos:

Represente en formato IEEE 754 simple precisión el número3.25Solución:

I Convertir a binario: 3.25 = 11.01I Normalizar el número (mover el punto decimal hasta

que haya un solo 1 a la izquierda)11.01 = 1.101× (21)

I mantisa: 101I exponente:

Bias = 2(8−1) − 1 = 127exp = E + 127 −→ exp = 1+ 127 = 128 = 10000000

I El número es positivo: bit de signo 0Resultado: 01000000010100000000000000000000

Page 36: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

36 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Ejemplos:

Represente en formato IEEE 754 simple precisión el número347.625Solución:

I Convertir a binario: 347.625 = 101011011.101I Normalizar el número (mover el punto decimal hasta

que haya un solo 1 a la izquierda)101011011.101 = 1.01011011101× (28)

I mantisa: 01011011101I exponente:

Bias = 2(8−1) − 1 = 127exp = E + 127 −→ exp = 8+ 127 = 135 = 10000111

I El número es positivo: bit de signo 0Resultado: 01000011101011011101000000000000

Page 37: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

37 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Ejemplos:

Ejemplo¿Cuál es el valor de: 1 0111110011000000000000000000000?Solución:

I El bit de signo es 1:número negativoI El exponente exp contiene 01111100 = 124I La mantisa es 0.11000 . . . = 0.75

El valor es:

(−1)×(1+0.75)×(2(124−127)) = −1.75×(2(−3)) = −0.21875

Page 38: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

38 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Notas importantes sobre el estándar IEEE 754

Como cero no es directamente representable en estándarIEEE 754, entonces dependiendo del exponente y la mantisadel número codificado, algunas representaciones tienensignificados particulares, así como se resume en la siguientetabla:

exp M Número0 < exp < Emax Cualquiera (−1)s × (1+M)× 2E−127

0 0 Cero, (−1)s × 00 6= 0 (−1)s × (0+M)× 2−126

Emax 0 Infinito, (−1)s ×∞Emax 6= 0 Not a Number,NaN

Page 39: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

39 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Números especiales Normalizados

El menor número positivo normalizado: exp = 1,M = 0

1.00000000000000000000000× 21−127 = (1.0)× 2−126

El mayor número positivo normalizado:exp = 254,M = 11 . . . 1

1.11111111111111111111111× 2254−127

Cualquier número mayor que este se diceoverflow(exp = 255, M > 0), el cual indica que el resultadoes Not a Number, NaN

Page 40: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

40 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Números especiales SubNormalizados

El mayor número positivo subnormalizado:exp = 0,M = 11 . . . 1

0.11111111111111111111111× 2−126

El menor número positivo subnormalizado:exp = 0,M = 00000000000000000000001

0.00000000000000000000001× 2−126

Cualquier número menor que este se dice underflow(exp = 255, M > 0).

Page 41: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

41 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Estándar IEEE-754

Precisión Doble: 64 bits

Page 42: 2 Aritmetica Del Computador

Ejercicio:Vamos a considerar un hipotético computador que ennúmeros de punto flotantes están representados en unapalabra de 16-bit. Un ejemplo se muestra en la Figura 1:

Muestre la representación en punto flotante y los bits del:1. El número eps (epsilón de la maquina)2. Mayor valor positivo normalizado3. Menor valor positivo normalizado4. El número 1 y -10.3755. El infinito y NaN

Page 43: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

43 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Solución

Page 44: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

44 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Solución

Page 45: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

45 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Ejercicio

Sea el sistema de punto flotante hipotético adecuado a lanorma IEEE-754 que usará 16 bits con la siguienteestructura:

Muestre como se almacena en binario:1. El epsilon de la maquina2. El mayor número positivo no normalizado3. El menor número positivo no normalizado4. El número -43.0000015. El -06. El -Inf

Page 46: 2 Aritmetica Del Computador

46

Aritmetica delComputador

Introducción

46 Aritmetica delComputador

Universidad Nacional Mayorde San Marcos

Facultad de IngenieriaIndustrial

Bibliografía

Richard L. Burden and J. Douglas FairesAnálisis numérico, 7a ed.Steven C. Chapra and Raymond P. CanaleMétodos numéricos para ingenieros, 5a ed.