ELO311 Estructuras de Computadores Digitales...

39
ELO311 Estructuras de Computadores Digitales Números Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer Organization & Design", (segunda y tercera edición), Morgan Kaufmann, CA. 2005 material del curso anterior ELO311 del Prof. Leopoldo Silva www.wikipedia.org

Transcript of ELO311 Estructuras de Computadores Digitales...

Page 1: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

ELO311Estructuras de Computadores Digitales

Números

Tomás Arredondo Vidal

Este material está basado en:

�material de apoyo del texto de David Patterson, John Hennessy, "Computer Organization & Design", (segunda y tercera edición), Morgan Kaufmann, CA. 2005

�material del curso anterior ELO311 del Prof. Leopoldo Silva

�www.wikipedia.org

Page 2: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Números

�Los primeros números conocidos se remontan a 30000 AC.

�Se han descubierto huesos y cavernas con marcas en ellos indicando cuentas como por ejemplo de dias que elapsan o de cantidades (e.g. animales).

�En general, un número es una secuencia de dígitos.

�En sistemas posiciónales y ponderados, la posición que ocupa un dígito, en la secuencia, representa las veces que está presente la potencia de la base numérica correspondiente.

Pintura de Caverna en Lascaux Francia en el

Paleolitico (40000-10000AC)

Marcas Numéricas NSW, Australia

(20000-3000AC)

Page 3: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Números

�Sea b la base numérica y di un elemento perteneciente al conjunto Db de los dígitos del sistema numérico.

�Db está formado por b símbolos, con valores consecutivos, en los que está incluido el cero.

Db = { 0, 1, …, (b-1) }, di ϵ Db

�Ejemplos:�b = 2 (binario) → D2 = { 0, 1}

�b = 8 (octal) → D8 = {0, 1, 2, 3, 4, 5, 6, 7}

�b = 10 (decimal) → D10 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

�b = 16 (hexadecimal) → D16 = {0, 1, … , 9, A, B, C, D, E, F}

Page 4: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Números en Punto Fijo

�Números en formato punto fijo tienen una cantidad fija de cifras enteras y fraccionarias, la posición de la coma o punto decimal siempre se ubica en el mismo lugar.

�La representación externa es la secuencia de dígitos siguiente, donde el signo es el símbolo + o –. Se emplea una coma para separar la parte entera de la fraccionaria:

dn dn-1 dn-2 .... d2 d1 d0 , d-1 d-2 …d-(m-1) d-m

�La representación interna es un numero de largo finito de (n + 1 + m) posiciones que no incluye la coma o el ±.

�Considerando la siguiente interpretación general para el valor del número:

�El rango de la representación aumenta si aumenta n. La precisión del número aumenta si aumenta m.

ni

mi

iibdN

=

−=∑±=

Page 5: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Aritmética Modular

�Consideremos algunos conceptos sobre aritmética modular. Si el módulo es bn+1. Se tiene: �bn+1 mod bn+1 = 0

�(bn+1 + b-m) mod bn+1 = b-m

�En C, el operador mod tiene el símbolo % asociado.

�Las reglas de asociatividad y distributividad deben ser cuidadosamente aplicadas en una aritmética modular.

�Ya que, por ejemplo, si ( a + b ) no es representable, entonces ( a + b ) - c puede ser diferente de a + ( b – c ).

�Ejemplo: a, b, c son representaciones internas de tres bits.

a = 110, b = 010, c = 001

(a + b) = 1 000 (overflow), (b – c) = 001 (sin overflow)

Page 6: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Aritmética Modular

� Si se tiene un sistema módulo bn+1, con m cifras fraccionarias y (n + 1) cifras para la parte entera

� El número bn+1 no es representable.

� El anterior a éste, es el mayor representable: bn+1- b-m

� Sea cero la secuencia formada por todos los dígitos iguales a 0 (e.g. 000…000).

� El número más pequeño siguiente a ceroes b-m (e.g. 000…001).

� El diametralmente opuesto al cero será: (bn+1)/2. Valor que se obtiene dividiendo por dos el máximo.

� Los valores que estas secuencias numéricas representan dependen del sistema (valores de m, n y b).

Page 7: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

�Dado: dn dn-1 dn-2 .... d2 d1 d0 , d-1 d-2 …d-(m-1) d-m

Ejemplos de Números

�Para m=0, b=2 y n=2:�Con m=0 son valores enteros entre 0 y 7 (000…111)

�Con m=0, b=10 y n=2: �La secuencia asociada al cero es 000, el numero

opuesto es 500.

�El mayor representable es 999 y el menor es 001.

�Con m=1, b=8 y n=1:�La secuencia asociada al cero es 00,0.

�Su diametralmente opuesta es 32,0; la anterior es 63,875 y la siguiente es 0,125.

ni

mi

iibdN

=

−=∑±=

Page 8: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Aritmética Modular en Hardware

�Para efectuar operaciones aritméticas, en hardware, se emplea un sumador binario, al cual se le agregan redes combinacionales para ampliar sus capacidades:�ya sea para realizar restas,

�comparaciones,

�para detectar propiedades del resultado (e.g. overflow).

�Con la misma unidad aritmética, empleada para enteros, pueden tratarse fraccionarios puros, con y sin signo.

�Un sumador binario suma los operandos de entrada (provenientes de registros o de una palabra de memoria), ambos de largo L y genera un resultado del mismo largo.

�De este modo el sumador binario opera con las reglas de la álgebra modular.

Page 9: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Un Sumador Modular

�La suma de dos números A y B, con resultado S, empleando un sumador binario, puede visualizarse como una suma de ángulos, según reloj, en el círculo.

�Si debido a las dimensiones de los números A y B, el rayo asociado a S sobrepasa los 360 grados, habrá reserva de salida, y S será menor que el menor de los operandos.

�La posición que ocupa S, es correcta, de acuerdo al álgebra modular, ya que si un número sobrepasa al módulo, se le resta el módulo, dejándolo menor que éste.

Page 10: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Números Enteros sin Signo

�Se emplea m=0, no se usa un bit para el ±. Se asume fija, la posición de la coma decimal:

�Y se interpreta el valor del número, según:

ni

i

iibdN

=

=∑=

0

Page 11: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Números Fraccionales

�Se emplea n=0. Una fracción pura, sin signo se representa:

�Y se puede interpreta como:

�Una fracción pura, con signo puede representarse:

�Con ds como bit de signo

0=

−=∑=

i

mi

iibdN

Page 12: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Números con Signo: Complemento Base�Para representar números con signo se

suele usar el complemento base.� dn dn-1 dn-2 .... d2 d1 d0 , d-1 d-2 …d-(m-1) d-m

�Los números positivos (dn < b/2) en complemento base se calculan de forma similar a enteros sin signo:

�Los números negativos (dn >= b/2) se calculan de acuerdo a:

�El diagrama muestra los valores:

Page 13: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Números con Signo: Complemento base

�Se define la representación interna del complemento base de un número mediante la siguiente expresión, que se evalúa en aritmética módulo bn+1:

�Para números negativos, en forma interna (en el registro), se escribe la secuencia representada por NCB.� dn dn-1 dn-2 .... d2 d1 d0 , d-1 d-2 …d-(m-1) d-m

�Ejemplo: b=2, m=0, n=2

�Para comp. base 2: x + x’ = -1, �x’ + 1 = - x

�Entonces…

�Para negar x se invierten los bits y se agrega 1.

01

2

3

-4

-1

-2

-3

Page 14: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Números con Signo: Comp. Base (cont)�El complemento base de un numero es simétrico respecto

del eje vertical (excepto del más negativo):

�En general, el complemento base de un número puede anotarse:

�Y puede verificarse que el complemento del complemento de un número es el mismo número (sea positivo o negativo, exceptuando al más negativo que no tiene complemento).

�La suma de las representaciones internas de un número y su complemento base dan como resultado el módulo.

)mod()( 11 ++ −= nn bNbN

Page 15: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Números con Signo: Sumas y Restas�La suma de los ángulos asociados

de dos números positivos, que excedan los 180 grados da como resultado un número negativo.

�La suma de los ángulos asociados, de dos números negativos, que no exceda los (360+180) grados da como resultado un número positivo.

�La resta entre dos números corresponde a sumar el primer operando con el complemento base del substraendo:�A - B = A + complemento base de (B)

Page 16: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Números con Signo: Sumas y Restas (cont)�En el diagrama el complemento base de B1 es un número

más negativo que A, su ángulo en sentido contra reloj es mayor que el complemento base de A; y el número positivo B2 es menor que A, por lo que tiene menor ángulo que el número positivo A. Entonces (A - B2) resulta positivo

�Sobrepasar al módulo, implica reserva de salida del sumador: A - B2 = A + ( bn+1 – B2) = bn+1 + (A - B2) > bn+1

Page 17: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Números con Signo: Sumas y Restas (cont)�Dadas las relaciones anteriores, (A – B1) es negativo.

�La suma de los ángulos no sobrepasa al módulo; el resultado es negativo y no hay reserva de salida:

A – B1 = A + (bn+1 – B1) = bn+1 + (A - B1) < bn+1

Page 18: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Complemento a Base 2

�Para enteros, con m=0 y base = 2 se tiene complemento a base dos:

�Otra interpretación también valida:

Page 19: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Complemento a Base 2

�Los dígitos correspondientes serian:

�Para largo de palabra de 32 bits, un número con signo se representa, en forma externa, según:

-d31*231 + d30*230 + .... +d1*21+ d0*20

�Recordando que:

�Ejemplo:

b=2, n=3,m=0 +5 se representa como: 0101

-5 se representa como: 1011

Dado que 23+1=10000: 1011 = 10000 - 0101

Page 20: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Complemento a 1

�Para enteros, con base dos, se tiene la representación complemento a uno.

�Con n=2, +3 se representa según: 011

-3 se representa según: 100

�Ya que: 2n+1 –1 = 111, al restar del positivo 011, resulta 100.

�Se puede generalizar esta operación, y plantear que para obtener el complemento uno de un número basta efectuar la negación bit a bit, o cambiar los unos por ceros, y los ceros por unos.

�Notar: Nc2 = Nc1 + 1

Page 21: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Números Polarizados

�Se emplea en el exponente de un número en punto flotante.

�Se desea tener un rango simétrico para los números.

�Si nos basamos en la representación complemento base deseamos que el número más negativo (que tenga complemento base) sea representado por una secuencia de puros ceros.

�Para esto a la representación en complemento base se le suma una polarización.

∑=

+

−−=n

i

ni

ipolarizado

bbdN

0

1

12

Page 22: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Números Polarizados (cont)

�Los valores asociados a las secuencias de dígitos, que representan números con signo, en enteros polarizados en representación interna, se ilustran en los siguientes diagramas.

�Es similar a complemento base, pero se le suma una polarización de (bn+1)/2 -1, lo cual produce que el máximo número negativo se representa ahora como una secuencia de puros 0s.

Page 23: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Números Signo Magnitud

�Números de tipo signo magnitud tienen dos ceros y un rango simétrico.

�Ejemplo: m = 0, n = 3, +3 se representa según: 011

-3 se representa según: 111

Page 24: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Conversión entre Base b y Base b k

�Si b = 2, con k = 3 se tiene número octal, si k = 4 se tiene hexadecimal.

�Sean dos secuencias de dígitos que representan números equivalentes en base b y base bk.

�(...a3 a2 a1 a0, a-1 a-2 a-3...)b = ( ...A3 A2 A1 A0, A-1 A-2 A-3...)b^k

�Si los números son equivalentes se cumple que tienen iguales valores decimales, es decir:

Σa j b j = ΣA j b kj

�Agrupando k cifras del sistema en base b, puede expresarse la primera suma (factorizando b kj):

Σa j b j = Σ ( akj+k –1 bk-1 +.....+ a kj b0) bkj

Page 25: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Conversión entre Base b y Base b k (cont)

�Entonces se cumple que cualquier dígito del sistema de base b k, puede representarse según la secuencia de k dígitos en base b:

Aj = ( a kj +k –1 .....a kj )b

�Lo que resta es convertir el número en base b, a base bk.

Page 26: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Conversión entre Base b y Base b k (cont)

�Ejemplo: Dado un número binario convertir a hexadecimal.

Número binario es: 101000102

= 1*27 + 0*26 + 1*25 + 0*24 + 0*23 + 0*22 + 1*21 +0*20

�Se forman grupos de 4 cifras:

= (1*23 +0*22 + 1*21 + 0*20)24*1 + (0*23 + 0*232 +1*21 +0*20)24*0

�Se representan los grupos entre paréntesis por número binarios:

= (1010)224*1 + (0010)224*0

�Los números binarios se expresan en hexadecimal:

= (A16) 24*1 + (216) 24*0 = (A16)161 + (216) 160 = A216

Page 27: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Conversión entre Base b y Base b k (cont)

�Entonces para convertir un número en base b a base bk, basta leer en hexadecimal cada grupo de cuatro cifras binarias.

�La conversión de hexadecimal a binario consiste en reemplazar cada cifra hexadecimal por el grupo equivalente de cuatro cifras binarias.

�Esto permite leer o escribir de manera compacta una larga secuencia binaria.

�Las conversiones de binario a octal, y viceversa se realizan de manera similar.

Page 28: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Números Decimales a Binarios

�La representación externa al computador son cifras decimales pero la representación interna es binaria.

�Se desea desarrollar un algoritmo para efectuar la conversión decimal a binario, pero con las operaciones en binario, para que pueda ser desarrollado por un procesador.

�Sean dos secuencias de dígitos que representan números equivalentes en base 2 y base 10.

(...a3 a2 a1 a0, a-1 a-2 a-3...)2 = ( ...A3 A2 A1 A0, A-1 A-2 A-3...)10

�Si los números son equivalentes se cumple que tienen iguales valores decimales, es decir:

Σaj2j = ΣAj10j

Page 29: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Números Decimales a Binarios (cont)

�Ejemplo: Convertir 98 decimal a binario.

98 = 10012*10102 + 10002 = 10110102 + 10002 = 11000102

�Para cinco cifras decimales se tendrá el siguiente equivalente binario:

A[4]*(1010)4 + A[3]*(1010)3 + A[2]*(1010)2 + A[1]*(1010)1 + A[0]�La suma anterior puede escribirse del modo siguiente:

(((A[4]*(1010) + A[3])*(1010) + A[2])*(1010) + A[1])*(1010) + A[0]�El algoritmo de conversión, para N cifras decimales, puede plantearse:

for (j=N-1, num=A[j]; j>0; j--) num = num*1010 +A[j-1];

Page 30: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Números Decimales a Decimales ASCII

� Los números decimales pueden ser una secuencia de caracteres ASCII, donde cada número decimal se representa por un byte.

� En ASCII los cuatro bits menos significativos son la representación binaria del dígito decimal:

‘0’=0x30 = 00110000

‘1’=0x31 = 00110001 ,...,

’9’=0x39 = 00111001

� Si es una cifra decimal, su equivalente ASCII está entre 0x30 y 0x39.

� Si al byte que representa la cifra decimal se le resta 0x30, se obtiene lasecuencia binaria que lo representa.

� Si al char que representa la cifra decimal se le resta ‘0’, el char asociado al dígito decimal 0, se obtiene la secuencia binaria del dígito decimal.

Page 31: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Números en Punto Flotante

�Se denominan así a las representaciones internas al procesador que modelan a los números reales.

�En forma externa, se representan como números con coma (o punto) (3,1415926), o bien en notación científica 0.12 * 10-5.

�Se dice que el número está normalizado si el dígito a la izquierda no es cero; en el ejemplo anterior: 1.2 * 10-6 .

�En el caso de computadores, se emplean números en sistema binario con un número finito de dígitos.

�Existe un compromiso entre los bits dedicados al exponente y los que representan la mantisa (bits significativos del número).

�El compromiso es entre el rango de representación y la exactitud de la representación.

Page 32: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Norma IEEE 754

�Estudiaremos números de punto flotante de acuerdo a la norma IEEE 754.

�En forma externa, un número flotante normalizado, se interpreta:

(-1)S*1.M2*2Ee

�La mantisa siempre comienza en 1, y M representa un fraccionario puro sin signo.

�Ee2 es el exponente.

�La mantisa y el exponente se almacenan en formato binario en la computadora.

Page 33: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Norma IEEE 754

�Flotante de precisión simple (en C es el tipo float). En forma interna, ocupando 32 bits, se tiene 1 bit signo, 8 bits de exponente y 23 bits de mantissa.

�Flotante de doble (en C es el tipo double). En forma interna, ocupando 64 bits, se tiene 1 bit signo, 11 bits de exponente, 52 bits de mantissa.

Page 34: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Norma IEEE 754 (cont)

�El exponente Ei, en forma interna, se representa como número polarizado con signo (Ni=Ne+Pol)

�Para 8 bits: -127 <= Ee <= +127 con Ei = Ee + 127

�Para 11 bits: -1023 <= Ee <= +1023 con Ei = Ee + 1023

�La norma IEEE 754 contempla: números normales, sub-normales, representaciones para el cero y el infinito, y para números inválidos (NaN, not a number).

Page 35: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Norma IEEE 754 (cont)

�Números sub-normales : Con –127 = Ee y M2 !=0 Ei=0 se tiene:

N = (-1)S*0.M2*2-126

�Cero: Con –127 = Ee y M2 ==0 Ei=0 se tiene:

N = (-1) S*0.0

�Números normales : Con –127 < Ee <=127 se tiene:

N = (-1)S*1.M2*2Ee

�Infinito : Con Ee =-128 y M2 ==0 Ei= -1 se tiene:

N = (-1) S * ∞

�Número inválido : Con Ee =-128 y M2 !=0 Ei= -1 se tiene:

N = NaN

Page 36: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Rango de Representación IEEE 754

�Si el número a representar es menor que el menor representable, se dice que existe underflow (vaciamiento).

�La representación interna para el menor positivo es: 0x00000001

�S = 0, Ei = 0, M = 000000000000000000000012

�Como M es diferente de cero y Ei es cero, se tendrá un número sub-normal, que se interpreta según:

N = (-1)S*0.M2*2-126 =

+ 0.000000000000000000000012 *2-126 = 2-126-23 = 1.401298464324817e-45

�Entonces se tiene vaciamiento para |N| < (-1)S*2-149 ≈ 1,40130 10-45

Page 37: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Rango de Representación IEEE 754 (cont)

�Si el número a representar es mayor que el mayor representable se dice que existe overflow (rebalse).

�El positivo mayor representable tiene: cero en el signo, el mayor exponente positivo (+127), y la mayor mantisa (con puros unos en los bits dedicados a la mantisa): 0x7f7fffff

N = (-1)0*1.M2*2127 = + 1.111111111111111111111112 *2127 =

3.4028234663852886e+38

�Rebalse para |N| > (-1)S*(2- 2-23)*2127 ≈ 3,402823 1038

�Para obtener las cifras decimales: 2127 = 10x , que implica:

x = 127 log 2 = 127 * 0,30103 ≈ 38.

�Nótese que no pueden representarse números muy pequeños, ni números muy grandes.

Page 38: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Rango de Representación IEEE 754 (cont)

�La representación interna de +0.0, por convenio es una secuencia de puros ceros.

�En doble precisión, con 11 bits, en decimal el exponente mayor es aproximadamente 308; el menor –308.

Page 39: ELO311 Estructuras de Computadores Digitales Númerosprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311-2... · Números Polarizados (cont) Los valores asociados a

Constantes y definiciones en C�Se incluyen algunas definiciones de constantes relacionadas

con números en punto flotante que se encuentran en el archivo float.h de la biblioteca de C.

#define FLT_RADIX 2

#define FLT_ROUNDS 1

#define FLT_GUARD 1

#define FLT_NORMALIZE 1

#define DBL_DIG 15 /*dígitos decimales de un double */

#define FLT_DIG 6 /*dígitos decimales de un float */

#define DBL_MANT_DIG 53 /* bits de la mantisa de un double */

#define FLT_MANT_DIG 24 /* bits de la mantisa de un double */

...etc...