07.05.2013 Views

Representación Signo Magnitud - DAC

Representación Signo Magnitud - DAC

Representación Signo Magnitud - DAC

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Estructura y Tecnología de Computadores (ITIG)<br />

Luis Rincón Córcoles<br />

José Ignacio Martínez Torre<br />

Ángel Serrano Sánchez de León<br />

Susana Mata Fernández<br />

1


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

Programa<br />

1. Introducción.<br />

2. Conceptos básicos.<br />

3. <strong>Representación</strong> de números en coma fija.<br />

a) Binario puro.<br />

b) <strong>Magnitud</strong> y signo.<br />

c) Complemento a la base.<br />

d) Complemento restringido a la base.<br />

e) Exceso a M.<br />

4. Introducción a la representación numérica en coma flotante.<br />

5. Bibliografía.<br />

Conceptos básicos: sistemas de representación numérica, rango, resolución,<br />

precisión, redondeo, sistemas de coma fija (binario puro, signo-magnitud,<br />

complemento a 2, complemento a 1, exceso a M), bit de signo, sistemas de<br />

coma flotante.<br />

2<br />

2


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

1. Introducción<br />

Los computadores manejan datos representados en binario.<br />

En un computador existen diferentes modos de representar las cantidades<br />

numéricas:<br />

• Coma fija: binario puro, signo-magnitud, complemento a 2, complemento a 1,<br />

exceso a M, BCD.<br />

• Coma flotante: IEEE 754.<br />

En los computadores el tamaño de los operandos está limitado.<br />

• Coma fija: n = p+q bits (p: parte entera; q: parte fraccionaria).<br />

• Coma flotante: n = p+q bits (p: mantisa; q: exponente).<br />

En este tema estudiaremos los sistemas de representación de coma fija más<br />

usuales y sus características.<br />

3<br />

3


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

2. Conceptos básicos<br />

Rango de un sistema de representación:<br />

Es el intervalo comprendido entre el menor y el mayor número representable.<br />

Por ejemplo, en binario puro con representación entera:<br />

con n bits hay 2 n elementos rango desde el 000...0 hasta el 111...1<br />

desde 0 hasta 2 n -1 en enteros.<br />

con 2 bits desde 0 (00) hasta 3 (11) desde 0 hasta 2 2 -1.<br />

Resolución de un sistema de representación:<br />

Es la diferencia existente entre dos elementos representables consecutivos.<br />

Por ejemplo, en binario puro con representación entera:<br />

con n bits hay 2 n elementos resolución de 1 entero.<br />

con 2 bits {0,1,2,3} resolución de 1 entero.<br />

4<br />

4


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

Precisión de un sistema de representación:<br />

Hace referencia al número de bits empleados y al error cometido al representar<br />

cantidades de forma aproximada.<br />

Redondeo:<br />

Error absoluto: diferencia entre la cantidad real X y la cantidad X’ que<br />

el computador utiliza para representarla: E a = | X – X’|<br />

El error absoluto siempre es menor que la resolución.<br />

Error relativo: cociente entre el error absoluto E a y la cantidad real X.<br />

Es la aproximación necesaria para representar en el computador una cantidad que<br />

no puede representarse de forma exacta.<br />

Redondeo hacia 0: truncamiento.<br />

Redondeo hacia +∞: por exceso.<br />

Redondeo hacia -∞: por defecto.<br />

Redondeo al valor más próximo: es el más preciso.<br />

5<br />

5


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

3. <strong>Representación</strong> de números en coma fija<br />

Los sistemas de representación en coma fija cuentan con n bits para<br />

representar cantidades, de los cuales p son para la parte entera (incluyendo<br />

posiblemente el signo) y q para la fraccionaria<br />

A: (a p-1 , a p-2 , ..., a 1 , a 0 , a -1 , a -2 ,... , a -(q-1) , a -q ).<br />

El rango depende del sistema de representación utilizado.<br />

La resolución es uniforme en todo el rango e igual al peso del bit menos<br />

significativo: 2 -q<br />

El error cometido depende del tipo de redondeo utilizado:<br />

Redondeo hacia 0, +∞ ó -∞: e a


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

Los números enteros en el computador se representan en coma fija:<br />

A: (a n-1 , a n-2 , ..., a 1 , a 0 ).<br />

q = 0<br />

n = p<br />

Resolución: 2 0 = 1<br />

Precisión exacta: e a = 0<br />

Se van a estudiar los siguientes sistemas de representación en coma fija:<br />

Sistema de representación sin signo: binario puro.<br />

Sistemas de representación con signo:<br />

<strong>Magnitud</strong> y signo (signo-magnitud o módulo y signo)<br />

Complemento a la base (en binario: complemento a 2)<br />

Complemento restringido a la base (en binario: complemento a 1)<br />

Exceso a M (representación sesgada).<br />

7<br />

7


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

3.a. Coma fija sin signo: binario puro<br />

Sólo sirve para números positivos.<br />

Cálculo del valor de un número dado en binario puro<br />

Enteros:<br />

Caso general:<br />

Cambio de signo: no es posible.<br />

Rango:<br />

A<br />

=<br />

A =<br />

n-1<br />

i=<br />

0<br />

p-1<br />

i=<br />

−q<br />

i<br />

ai<br />

⋅2<br />

i<br />

ai<br />

⋅2<br />

Enteros: [0, 2 n -1] con resolución de 1 unidad.<br />

Caso general: [0,2 p -2 -q ] con resolución 2 -q .<br />

8<br />

8


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

3.b. Coma fija con signo: magnitud y signo<br />

La notación habitual que usamos los humanos para representar cantidades<br />

numéricas con signo consiste en añadir un símbolo adicional para diferenciar un<br />

número positivo de uno negativo:<br />

positivos:+ a p-1 a p-2 ... a 1 a 0 a -1 ... a -q<br />

negativos: – a p-1 a p-2 ... a 1 a 0 a -1 ... a -q<br />

En un computador, la traducción directa de esta notación consiste en considerar<br />

a uno de los bits del número como bit de signo, por ejemplo, señalando a un<br />

número como positivo con un bit 0 y a un número negativo con un bit 1:<br />

positivos: 0 a p-2 ... a 1 a 0 a -1 ... a -q<br />

negativos: 1 a p-2 ... a 1 a 0 a -1 ... a -q<br />

Por tanto, la representación tiene: bit de signo y la magnitud del número.<br />

9<br />

9


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

Cálculo del valor de un número dado en magnitud y signo:<br />

Enteros:<br />

Caso general:<br />

Cambio de signo: basta con invertir el bit de signo.<br />

Rango:<br />

A = (1−<br />

2⋅<br />

a<br />

A<br />

= (1−<br />

2⋅<br />

a<br />

n-1<br />

p-1<br />

) ⋅<br />

) ⋅<br />

n-2<br />

i=<br />

0<br />

p-2<br />

i=<br />

−q<br />

i<br />

a ⋅2<br />

i<br />

i<br />

a ⋅2<br />

i<br />

Enteros: [-(2 n-1 -1), 2 n-1 -1] con resolución de 1 unidad.<br />

Caso general: [-(2 p-1 -2 -q ), 2 p-1 -2 -q ] con resolución 2 -q .<br />

Ejemplo: Para un número en base 2 (r=2) representado con 4 bits (n=4), el<br />

rango es -(2 3 -1) ≤ x ≤ 2 3 -1 -7 ≤ x ≤ 7.<br />

0110 = 6 1110 = -6<br />

0000 = 0 1000 = -0 (ambigüedad en el cero)<br />

10<br />

10


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

3.c. Coma fija con signo: complemento a la base<br />

Definición y cálculo del complemento a la base:<br />

Dado un número N expresado en base r con p bits para la parte entera (p>=1, p<br />

incluye el signo), se define el complemento a la base C r de N (C rN) como:<br />

C rN = r p - N<br />

Ejemplos de cálculo del complementario:<br />

Sistema decimal (base 10): C 10N = 10 n - N<br />

Si n = 2, C 10(02) = 10 2 - 02 = 100 - 02 = 98<br />

Sistema binario (base 2): C 2N = 2 n - N<br />

Si n = 4, C 2(1010) = 10000 - 1010 = 0110<br />

Si n = 5, C 2(10100) = 2 5 - 10100 = 01100<br />

100000<br />

– 10100<br />

01100<br />

11<br />

11


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

Ventaja del C r de N: permite restar aplicando la suma (lo estudiaremos en el<br />

tema de aritmética binaria).<br />

Inconveniente del C r de N: hay que restar para calcular C rN, puesto que el<br />

complementario se calcula como r p - N.<br />

Sin embargo, en base 2, el C 2N se puede calcular sin restar, debido a que el<br />

minuendo para el cálculo del complementario siempre es de la forma 10...00.<br />

Por tanto, para el cálculo del C 2 se procede de derecha a izquierda de la<br />

siguiente manera:<br />

Copiar todos los bits de N hasta el primer 1 inclusive.<br />

El resto de los bits se obtienen cambiando 1s por 0s y 0s por 1s.<br />

12<br />

12


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

<strong>Representación</strong> de números en coma fija con signo en complemento a 2:<br />

Los números fraccionarios en coma fija con signo de n bits (a p-1 a p-2 ... a 1 a 0<br />

a -1 ... a -q) se representan en complemento a la base del siguiente modo:<br />

Positivos (N): 0 a p-2 ... a 1 a 0 a -1 ... a -q (dígito de signo 0 y n-1 bits de magnitud,<br />

igual que en magnitud y signo).<br />

Negativos (-N): complemento a la base (C 2 N) del número positivo N (en binario<br />

los números negativos empiezan por 1).<br />

Ejemplo: representar A = 29 10 con n = 8 bits, q = 0<br />

A C2 = A MS = 00011101 C2<br />

Ejemplo: representar B = -53 10 con n = 8 bits, q = 0<br />

Primero lo representamos en positivo: -B C2 = 00110101 C2<br />

Ahora calculamos el complemento: B C2 = C2(-B C2 ) = 11001011 C2<br />

También podemos calcularlo directamente y después pasarlo a binario:<br />

B C2 = 2 8 -53 = 256-53 = 203 = 11001011 C2<br />

13<br />

13


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

Cálculo del valor de un número dado en complemento a 2:<br />

Enteros:<br />

n-2<br />

n-1<br />

i<br />

A = −a<br />

⋅2<br />

+ a ⋅2<br />

Caso general:<br />

n-1<br />

A<br />

= −a<br />

p-1<br />

Si el número es positivo, su valor se calcula igual que en binario puro.<br />

Ejemplo: calcular el valor de A C2 = 00011101 C2, n = 8, q = 0<br />

Según la fórmula, A = 1x2 0 + 1x2 2 + 1x2 3 + 1x2 4 = 29<br />

Ejemplo: calcular el valor de B C2 = 11001011 C2 , n = 8, q = 0<br />

i=<br />

0<br />

⋅2<br />

i<br />

p-1<br />

+<br />

p-2<br />

i=<br />

-q<br />

i<br />

a ⋅2<br />

Según la fórmula, B = 1x2 0 + 1x2 1 + 1x2 3 + 1x2 6 - 1x2 7 = -53<br />

Otra forma para números negativos: lo pasamos a positivo (calculando el<br />

complementario) y obtenemos el valor considerándolo como un número en binario<br />

puro, pero poniendo un signo menos delante.<br />

i<br />

14<br />

14


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

Cambio de signo: se lleva a cabo mediante la complementación.<br />

Ejemplo: cambiar de signo el número A C2 = 00011101 C2, n = 8, q = 0<br />

-A C2 = C2(A C2 ) = 11100011 C2<br />

Valor de -A C2 = 11100011 C2 = 1x2 0 + 1x2 1 + 1x2 5 + 1x2 6 - 1x2 7 = -29<br />

Ejemplo: cambiar de signo el número -A C2 = 11100011 C2, n = 8, q = 0<br />

-(-A C2 ) = C2(-A C2 ) = 00011101 C2<br />

Valor de -(-A C2 ) = 00011101 C2 = 1x2 0 + 1x2 2 + 1x2 3 + 1x2 4 = 29<br />

Ejemplo: cambiar de signo el número B C2 = 11001011 C2 , n = 8, q = 0<br />

-B C2 = C2(B C2 ) = 00110101 C2<br />

Valor de -B C2 = 00110101 C2 = 1x2 0 + 1x2 2 + 1x2 4 + 1x2 5 = 53<br />

15<br />

15


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

Rango: [–(r p-1 ), r p-1 -r -q ], lo que en complemento a 2 significa:<br />

Enteros: [-2 n-1 , 2 n-1 -1] con resolución de 1 unidad.<br />

Caso general: [-2 p-2 ,2 p-2 -2 -q ] con resolución 2 -q .<br />

Ejemplo: Para un número en base 2 (r=2) representado con 4 bits (n=4),<br />

el rango es -2 3 ≤ x ≤ 2 3 -1 -8 ≤ x ≤ 7.<br />

0110 = 6 1110 = –2<br />

0000 = 0 1000 = –8<br />

Extensión de signo: se replica el bit de signo hacia la izquierda.<br />

Ejemplo: extender X = 100110 C2 de 6 a 8 bits 100110<br />

11100110<br />

Extender X = 010011 C2 de 6 a 8 bits 010011<br />

00010011<br />

16<br />

16


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

3.d. Coma fija con signo: complemento restringido<br />

Definición y cálculo del complemento restringido a la base:<br />

Dado un número N expresado en base r con p bits para la parte entera (p>=1, p<br />

incluye el signo), se define el complemento restringido a la base C r-1 de N (C r-1N)<br />

como:<br />

C r-1N = r p - 1 - N<br />

Como se puede comprobar: C rN = r p - N = r p - 1 - N + 1 = C r-1N + 1<br />

Ejemplos de cálculo del complementario:<br />

Sistema decimal (base 10): C 9 N = 10 n -1 - N<br />

Si n = 2, C 9 (02) = 10 2 - 1- 02 = 100 - 1- 02 = 97<br />

Sistema binario (base 2): C 1 N = 2 n - 1 - N<br />

Si n = 4, C 1 (1010) = 2 4 - 1010 - 0001 = 10000 - 1010 - 0001 = 0101<br />

Para el cálculo del C1 basta con complementar todos los bits del número,<br />

es decir, a cambiar 1s por 0s y 0s por 1s.<br />

17<br />

17


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

El cálculo del C 1 se puede considerar un paso intermedio para el cálculo del C 2.<br />

Así, para obtener el C 2 de un número podemos realizar estos dos pasos:<br />

1. Calcular el C 1 .<br />

2. Sumar un 1 al dígito menos significativo (o sea, sumar 2 -q al C 1 calculado).<br />

¿C 2(110001)? C 1(110001)=001110<br />

C 2(110001)=001110+000001=001111<br />

Números en coma fija con signo representados en complemento a 1:<br />

Los números en coma fija con signo de n bits (a p-1 a p-2 ... a 1 a 0 a -1 ... a -q ) se<br />

representan en complemento restringido a la base del siguiente modo:<br />

positivos (N): 0 a n-2 ... a 1 a 0 a -1 ... a -q (dígito de signo 0 y n-1 bits de magnitud)<br />

negativos (-N): complemento a la base restringido (C r-1 N) del número positivo N<br />

(en binario el primer dígito es siempre 1).<br />

Rango: caso general [–(2 p-1 - 2 -q ), 2 p-1 - 2 -q ], enteros [–(2 n-1 - 1), 2 n-1 - 1], en ambos<br />

casos con doble representación del cero.<br />

18<br />

18


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

Un número A se representa en exceso a M igual que se representaría el<br />

número A+M en binario puro.<br />

Ejemplos:<br />

3.e. Coma fija con signo: exceso a M<br />

M es el sesgo (exceso, bias) de la representación.<br />

M suele valer 2 n-1 ó 2 n-1 -1.<br />

Se suele usar sólo para enteros (q=0).<br />

Representar A = 3 utilizando n = 4, q = 0 y M = 2 3 = 8<br />

A = 3 10 = (3+8) E. a 8, base 10 = 11 E. a 8, base 10 = 1011 E. a 8, base 2<br />

Representar B = -4 utilizando n = 4, q = 0 y M = 2 3 = 8<br />

B = -4 10 = (-4+8) E. a 8, base 10 = 4 E. a 8, base 10 = 0100 E. a 8, base 2<br />

Representar C = 53 utilizando n = 8, q = 0 y M = 2 7 -1= 127<br />

C = 53 10 = (53+127) E. a 127, base 10 = 180 E. a 127, base 10 = 10110100 E. a 127, base 2<br />

19<br />

19


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

Cálculo del valor de un número dado en exceso a M:<br />

Enteros:<br />

A<br />

Caso general:<br />

n-1<br />

=<br />

i=<br />

0<br />

A<br />

i<br />

a ⋅2<br />

−M<br />

Para calcular el valor de un número representado en exceso a M, se procede<br />

como si estuviéramos en un número en binario puro y después se resta M al<br />

resultado.<br />

Rango:<br />

Enteros: [-M, 2 n -1-M] con resolución de 1 unidad.<br />

Caso general: [-M,2 p-1 -2 -q -M] con resolución 2 -q .<br />

Si q = 0 y M = 2 n-1 , el sistema coincide con complemento a 2 pero invirtiendo el<br />

bit de signo.<br />

En ese caso el rango es [- 2 n-1 ,2 n-1 -1]<br />

i<br />

p-1<br />

=<br />

i=<br />

−q<br />

i<br />

a ⋅2<br />

−M<br />

i<br />

20<br />

20


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

Coma fija con signo: tablas comparativas<br />

Equivalencia entre la representación binario en magnitud y signo,<br />

complemento a 2, complemento a 1 y exceso a 2 n-1 construidas para una<br />

representación de enteros con n=4:<br />

21<br />

21


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

Definición<br />

Nº Positivos<br />

Nº Negativos<br />

Rango<br />

Cambio de<br />

<strong>Signo</strong><br />

Conversión a<br />

base 10<br />

Extensión del<br />

signo<br />

0<br />

Binario Puro<br />

Divisiones<br />

sucesivas<br />

Sin signo<br />

[0, 2 n -1]<br />

Sin signo<br />

= −<br />

=<br />

Sin signo<br />

Único: 0<br />

⋅<br />

<strong>Magnitud</strong>-<strong>Signo</strong><br />

<strong>Magnitud</strong> <strong>Signo</strong><br />

[-(2 n-1 -1), 2 n-1 -1]<br />

Cambiar bit de signo<br />

=<br />

S <strong>Magnitud</strong><br />

0 <strong>Magnitud</strong><br />

1 <strong>Magnitud</strong><br />

−<br />

−<br />

Se copian los bits de<br />

signo y magnitud y los<br />

que faltan ceros<br />

−<br />

=<br />

0000 - 1000<br />

⋅<br />

C2<br />

C 2 N=2 n -N<br />

De dcha a izqda: copiar<br />

hasta el primer 1 y luego<br />

1s por 0s y 0s por 1s<br />

= −<br />

C 2N<br />

[-2 n-1 , 2 n-1 -1]<br />

C 2 N<br />

Se replica el bit de signo<br />

Único:0000<br />

C1<br />

C 1 N=2 n -N-1<br />

1s por 0s y 0s por 1s<br />

0 <strong>Magnitud</strong> 0 <strong>Magnitud</strong><br />

− ⋅<br />

−<br />

+<br />

−<br />

=<br />

⋅<br />

C 1N<br />

[-(2 n-1 -1), 2 n-1 -1]<br />

C 1 N<br />

Se replica el bit de signo<br />

0000 - 1111<br />

Exceso M<br />

(*) M=2 n-1<br />

N ExcesoM = N+M |bp<br />

N ExcesoM = N+M |bp<br />

N ExcesoM = N+M |bp<br />

[-M , 2 n -1-M]<br />

[-2 n-1 , 2 n-1 -1] (*)<br />

No evidente<br />

−<br />

= − − ⊕ − ⋅ = ⋅ −<br />

=<br />

−<br />

=<br />

Representaciones<br />

con nº de dígitos <br />

tienen sesgos <br />

Único: 1000<br />

22<br />

22


Tema 3. <strong>Representación</strong> de la información numérica en los computadores<br />

5. Bibliografía<br />

C. CERRADA, V. FELIU. Estructura y Tecnología de Computadores I.<br />

U.N.E.D., 1993.<br />

J.M. ANGULO, J.GARCÍA. Sistemas Digitales y Tecnología de Computadores.<br />

Paraninfo, 2002.<br />

P. DE MIGUEL. Fundamentos de los Computadores. 7ª edición. Paraninfo,<br />

1999.<br />

W. STALLINGS. Organización y Arquitectura de Computadores. 5ª edición,<br />

Prentice Hall, 2000.<br />

D.A. PATTERSON, J.L. HENNESSY. Estructura y Diseño de Computadores.<br />

Reverté, 2000.<br />

A. PRIETO, A. LLORIS, J.C. TORRES. Introducción a la Informática. 3ª<br />

edición, McGraw-Hill, 2002.<br />

L. RINCÓN. <strong>Representación</strong> Digital de la Información en los Computadores.<br />

Apuntes complementarios de la asignatura.<br />

23<br />

23

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!