Representación Signo Magnitud - DAC
Representación Signo Magnitud - DAC
Representación Signo Magnitud - DAC
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