11
�������������� ����
� ����������������
Luis Rincón Córcoles
José Ignacio Martínez Torre
Ángel Serrano Sánchez de León
Estructura y Tecnología de Computadores (ITIG)
2
Tema 4. Aritmética binaria en los computadores
Programa1. Introducción.2. Operaciones lógicas.3. Bases de la aritmética binaria en coma fija.4. Operaciones de desplazamiento. 5. Aritmética en coma fija.
a. Aritmética en binario natural.b. Aritmética en signo-magnitud.c. Aritmética en complemento (a 2, a 1).d. Cambio de signo.e. Extensión de signo.
6. Bibliografía.
Conceptos básicos: operaciones lógicas bit a bit (not, and, or), operaciones aritméticas básicas en binario (+, -, *, /), desbordamiento, desplazamiento (lógico, aritmético, circulares), cambio de signo, extensión de signo.
22
3
Tema 4. Aritmética binaria en los computadores
Los computadores operan con los datos de forma diferente dependiendo del sistema de representación utilizado.
• Coma fija: binario puro, signo-magnitud, complemento a 2, complemento a 1, exceso a M, BCD.
• Coma flotante.
En los computadores el tamaño de los operandos está limitado.• Coma fija: n = p+q bits (p: parte entera; q: parte fraccionaria).
• Coma flotante: n = p+q bits (p: mantisa; q: exponente).
Estudiaremos:• La aritmética binaria básica.
• Los distintos tipos de operaciones lógicas y desplazamientos.
• La suma, la resta, la extensión de signo y el cambio de signo en algunos sistemas de coma fija.
• La aritmética en coma flotante la veremos en un tema posterior.
1. Introducción
4
Tema 4. Aritmética binaria en los computadores
De acuerdo con los axiomas del álgebra de Boole, las operaciones lógicas toman bits individuales como operandos.
Sin embargo, los computadores realizan operaciones lógicas tomando datos completos de n bits.
� Operación lógica NOT (monaria): se invierten todos los bits del operando.
• Ejemplo: n=4 bits, A=0110.
� Operaciones binarias: se realizan bit a bit con dos operandos.
• Ejemplo: n=4 bits, A=0110, B=1100.
2. Operaciones lógicas
A = 0 1 1 0NOT A = 1 0 0 1
A = 0 1 1 0 B = 1 1 0 0
A OR B = 1 1 1 0
A = 0 1 1 0 B = 1 1 0 0
A AND B = 0 1 0 0
A = 0 1 1 0 B = 1 1 0 0
A XOR B = 1 0 1 0
33
5
Tema 4. Aritmética binaria en los computadores
Las operaciones aritméticas en binario se realizan según tablas más sencillas que las equivalentes en el sistema decimal. Para octal y hexadecimal se haría de manera análoga.
3. Bases de la aritmética binaria en coma fija
SUMABINARIA
(+)0 1
0 0 1
1 1 1 0acarreo
1 9
15
24
1 1 1 1 0 0 1 1 1 1 1
1 1 0 0 0
+ +
acarreos 8321
62
1 0 1 0 0 1 1 1 0 1 0 1
1 1 1 1
0 1 1 1 1 1 0
- -acarreos
minuendosustraendo
diferencia
RESTABINARIA
(-)0 1
0 0 1
1 1 1 0
AAAA
BB BB
Suma binaria Resta binaria
6
Tema 4. Aritmética binaria en los computadores
126
72
1 1 0 01 1 0
0 0 0 0
1 1 0 0
1 1 0 0
1 0 0 1 0 0 0
64 + 8 = 72
×multiplicando
resultado
A
B
PRODUCTOBINARIO
(××××)0 1
0 0 0
1 0 1
multiplicador
Productos parciales
×
Producto binario
44
7
Tema 4. Aritmética binaria en los computadores
La división binaria se puede realizar igual que la decimal.
En el caso de la binaria es más sencillo porque se simplifica la elección de cada dígito del cociente, ya que sólo pueden ser 0 ó 1.
� Si el dividendo parcial es mayor o igual que el divisor, el siguiente dígito del cociente es 1, si no es 0.
División binaria
112 80 14
1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 1 00 1 1 0 0
1 0 0 00 1 0 0 0
1 0 0 00 0 0 0 0
0 0 0 00 0 0 0
cociente
resto
divisordividendo
-
-
-
-
8
Tema 4. Aritmética binaria en los computadores
Multiplicación y división de un número N por una potencia de la base r (rm):q-
q-1-
1-0
01-p
1-p rarararaN ⋅++⋅+⋅++⋅= ����������������
mp-p-
m1-1-
m00
m1-n1-n
m rararararN ++++ ⋅++⋅+⋅++⋅=⋅ ����������������
La coma aparece a la derecha del dígito ai que cumple i+m = 0 � i = -m, es decir detrás del dígito que originalmente era a-m.
� si m > 0 (producto) se mueve (desplaza) la coma p lugares a la derecha.� si m < 0 (división) se mueve (desplaza) la coma p lugares a
la izquierda.
Ejemplo: (1101001,111)2 × 23 = (1101001111,0)2
(1101001,111)2 × 2-4 = (110,1001111)2
(10,53)10 × 104 = (105300,0)10
55
9
Tema 4. Aritmética binaria en los computadores
El desbordamiento (overflow) es la circunstancia que sucede cuando el resultado de una operación aritmética está fuera del rango de representación.
� Desbordamiento positivo: el número es positivo y mayor que el más grande representable.
� Desbordamiento negativo: el número es más negativo (menor) que el extremo inferior del rango de los negativos.
Es necesario detectar la condición de desbordamiento (¡el resultado obtenido es erróneo!).
Subdesbordamiento (underflow): sucede cuando el número que queremos representar está demasiado cercano a 0 y se confunde con él.
� Subdesbordamiento positivo: el número es positivo.
� Subdesbordamiento negativo: el número es negativo.
Situaciones especiales
10
Tema 4. Aritmética binaria en los computadores
Son operaciones unarias en las que los bits del operando se desplazan hacia la izquierda o hacia la derecha.
La longitud del desplazamiento será s ≥ 1, generándose un “hueco” de s bits.
Según el criterio utilizado para dar valores a los s bits del hueco hay varios tipos de desplazamientos:
� Lógicos.
� Aritméticos.
� Circulares (rotaciones).
Los desplazamientos y rotaciones suelen involucrar a algún indicador de resultado.
4. Operaciones de desplazamiento
66
11
Tema 4. Aritmética binaria en los computadores
En este caso los bits del hueco se rellenan con ceros.• El último bit que sale se almacena en un indicador llamado C.
Desplazamiento lógico
� Desplazamientos lógicos a la derecha:Longitud s = 3
A’ = 000001
C = 0
Longitud s = 2
A’ = 000010
C = 1
Longitud s = 1
A’ = 000101
C = 1
� Desplazamientos lógicos a la izquierda:
Longitud s = 3
A’ = 011000C = 1
Longitud s = 2
A’ = 101100C = 0
Longitud s = 1
A’ = 010110C = 0
Ejemplos: n = 6 bits, A = 001011
12
Tema 4. Aritmética binaria en los computadores
Se usa cuando se considera que el dato es un número en complemento a 2.• Hacia la derecha: se replica el bit de signo.
• Hacia la izquierda: se rellena con ceros, y si se modifica el bit de signo en el proceso el indicador V se pone a 1.
• El último bit que sale va al indicador C.
Desplazamiento aritmético
� n = 6 bits, A = 001011:Longitud s = 3
A’ = 000001
C = 0
Longitud s = 2
A’ = 000010
C = 1
Longitud s = 1
A’ = 000101
C = 1
Longitud s = 3
B’ = 111100
C = 1
Longitud s = 2
B’ = 111001
C = 0
Longitud s = 1
B’ = 110010
C = 1
Ejemplos de desplazamientos aritméticos a la derecha:
� n = 6 bits, B = 100101:
77
13
Tema 4. Aritmética binaria en los computadores
� n = 6 bits, A = 001011:Longitud s = 3
A’ = 011000C = 1, V = 0
Longitud s = 2
A’ = 101100C = 0, V = 1
Longitud s = 1
A’ = 010110C = 0, V = 0
Longitud s = 3
B’ = 101000C = 0, V = 0
Longitud s = 2
B’ = 010100C = 0, V = 1
Longitud s = 1
B’ = 001010C = 1, V = 1
Ejemplos de desplazamientos aritméticos a la izquierda:
� n = 6 bits, B = 100101:
14
Tema 4. Aritmética binaria en los computadores
Los bits que salen por un extremo entran por el otro.• El último bit que sale va al indicador C.
Rotación
� Rotación a la derecha:Longitud s = 3
A = 001011A’ = 011001
C = 0
Longitud s = 2
A = 001011A’ = 110010
C = 1
Longitud s = 1
A = 001011A’ = 100101
C = 1
� Rotación a la izquierda:
Longitud s = 3
A = 001011
A’ = 011001C = 1
Longitud s = 2
A = 001011
A’ = 101100C = 0
Longitud s = 1
A = 001011
A’ = 010110C = 0
Ejemplos: n = 6 bits, A = 001011
88
15
Tema 4. Aritmética binaria en los computadores
Los bits que salen por un extremo entran por el otro, interponiéndose un indicador en el proceso que actúa de almacén.
• El último bit que sale va al indicador C.
Rotación con extensión
� Rotación a la derecha con extensión:
Longitud s = 3
C = 1, A = 001011C’ = 0, A’ = 111001
Longitud s = 2
C = 1, A = 001011C’ = 1, A’ = 110010
Longitud s = 1
C = 1, A = 001011C’ = 1, A’ = 100101
� Rotación a la izquierda con extensión:
Longitud s = 3
C = 1, A = 001011
C’ = 1, A’ = 011100
Longitud s = 2
C = 1, A = 001011
C’ = 0, A’ = 101110
Longitud s = 1
C = 1, A = 001011
C’ = 0, A’ = 010111
Ejemplos: n = 6 bits, A = 001011, inicialmente C=1
16
Tema 4. Aritmética binaria en los computadores
Despl. a la Izquierda Despl. a la Derecha
Lógico
Aritmético
Circular
Circular con extensión
99
17
Tema 4. Aritmética binaria en los computadores
Estudiaremos las reglas básicas de la aritmética de algunos sistemas de
representación numérica en coma fija estudiados:
� Binario puro.
� Magnitud y signo.
� Complemento a 2.
� Complemento a 1.
5. Aritmética binaria en coma fija
18
Tema 4. Aritmética binaria en los computadores
acarreo
Sus reglas son las de la aritmética binaria ya estudiada, con la limitación del tamaño de los operandos (n = p+q).
Desbordamiento: puede darse al realizar sumas, restas, multiplicaciones y divisiones.
� Suma: el resultado puede tener n+1 bits (acarreo superior C = 1)
1101 13+ 1111 +15
1 1100 28
acarreo
1101 13- 1111 - 15
1 1110 - 2
� Resta: el resultado puede ser negativo (acarreo superior C = 1)
� Producto: al multiplicar números de n bits el resultado puede necesitar hasta 2n bits (¡puede salirse de rango!).
� División: hay desbordamiento si el divisor es 0.
5.a. Aritmética de binario puro
DESBORDAMIENTO NEGATIVO:sustraendo mayor que minuendo
DESBORDAMIENTO POSITIVO
1010
19
Tema 4. Aritmética binaria en los computadores
Este sistema equivale al que los humanos usamos para operar.� Diferencia: opera en binario y no en base 10.
Las reglas básicas son similares a las del binario puro.� Diferencia: es preciso tratar por separado signos y magnitudes.
Suma: R = A + B � Signo(A) = Signo(B):
• Signo(R) = signo(A) = signo(B)
• |R| = |A| + |B|
� A ≥ 0 y B ≤ 0:• Si |A| ≥ |B| � signo(R) = 0 y |R| = |A| – |B|
• Si |A| < |B| � signo(R) = 1 y |R| = |B| – |A|
� A ≤ 0 y B ≥ 0: igual que el caso anterior cambiando A por B.
Resta: similar a la suma, cambiando el signo del segundo operando.
5.b. Aritmética en magnitud y signo
20
Tema 4. Aritmética binaria en los computadores
Por tanto, al sumar o restar con módulo y signo se debe hacer lo siguiente:1. Observar los signos y decidir qué operación se va a realizar.2. Ordenar los módulos si hay que restar.3. Operar con los módulos y detectar el posible desbordamiento.4. Colocar el signo al resultado.
Producto:1. Se separan el signo y el módulo del multiplicando y del multiplicador.
2. Se multiplican los módulos (da un resultado de hasta 2n-2 bits).
3. Si los signos del multiplicando y el multiplicador son iguales, el resultado es positivo, y si no es negativo.
El resultado puede tener hasta 2n-1 bits (¡puede salirse de rango!).
1111
21
Tema 4. Aritmética binaria en los computadores
División:1. Se separan el signo y el módulo del dividendo y del divisor.
2. Se dividen los módulos.
3. Si los signos del dividendo y divisor son iguales, el cociente es positivo, y si no es negativo.
4. El signo del resto será siempre igual que el del dividendo.
Desbordamiento: se detecta al operar con los módulos.Puede producirse al sumar dos números de igual signo o al restar dos números de
distinto signo.
También puede producirse desbordamiento en productos y divisiones.
22
Tema 4. Aritmética binaria en los computadores
Para simplificar el diseño de los circuitos aritméticos del computador sería muy bueno que la suma y la resta pudieran ser tratadas sin distinciones, es decir, que la resta pudiera realizarse como si fuese una suma y no con un circuito radicalmente distinto.
En matemáticas se suele tratar a la resta como la suma de un opuesto, es decir, A-B = A+(-B), pero aún así hay que utilizar la tabla de la resta.
Ejemplo: base r=10, n=2 dígitos.
23 � La suma no sirve para hacer la resta.– 02
21
Complementando el sustraendo y sumando:
23 � La suma casi sirve para hacer la resta+ 98 a excepción de un 1 como bit más1 21 significativo.
5.c. Aritmética en complemento
1212
23
Tema 4. Aritmética binaria en los computadores
Sistema decimal (base 10): C10N = 10n - N Si n = 2, C10(2) = 102 - 2 = 100 - 2 = 98
Sistema binario (base 2): C2N = 2n - NSi n = 4, C2(1010) = 10000 - 1010 = 0110 Si n = 5, C2(10100) = 25 - 10100 = 01100
Ejemplo:
Inconveniente: hay que complementar el sustraendo.Sin embargo, ya sabemos que en base 2 el C2N se puede calcular sin restar.Debido a que en la complementación el minuendo siempre es de la forma 10...00, para el cálculo del C2 se procede de derecha a izquierda de la siguiente manera:
� Copiar todos los bits de N hasta el primer 1 inclusive.� El resto de los bits se obtienen cambiando 1s por 0s y 0s por 1s.
100000– 10100
01100
La importancia del Cr de N reside en que permite restar aplicando la suma.
24
Tema 4. Aritmética binaria en los computadores
Suma en complemento a 2:Además de permitir la resta mediante la operación de suma, los números representados en complemento a la base permiten calcular la suma operando con todos los bits de igual modo, sin hacer distinciones con el bit de signo.Esto hace que la representación en complemento a 2 sea muy utilizada.
� Si A >0 y B >0: aritmética binaria pura. Ejemplo: 0100 4+ 0010 + 2
0110 6�� Si A >0 y B <0: dos posibles casos dependiendo del valor absoluto de A y B
� Si |A| ≥≥≥≥ |B| ���� R positivo, signo(R) = 0, se calcula R = |A| – |B|
0110 6+ 1100 - 4
1 0010 2
Ejemplo: 6 + (-4) = 2A se representa normalB se representa en C2
R = A + B = |A| + rn - |B| = rn + |A| - |B|es un número positivo normal, y se desprecia el bit de acarreo
1313
25
Tema 4. Aritmética binaria en los computadores
� Si A >0 y B <0:
� Si |A| < |B| ���� R negativo, signo(R) = 1, se calcula R = -(|B| – |A|)
0100 4+ 1010 - 6
1110 - 2
Ejemplo: 4 + (-6) = -2A se representa normalB se representa en C2
R = A + B = |A| + rn - |B| = rn - (|B| - |A|), es un número negativo en complemento a la base, sin acarreo
� Si A <0 y B >0: caso anterior cambiando A por B (conmutatividad).
� Si A <0 y B <0 ���� R negativo, signo(R) = 1, se calcula R = -(|A| + |B|)
A se representa en C2B se representa en C2
R = A + B = rn - |A| + rn - |B| = rn+ (rn - (|A| + |B|)), es un número negativo en complemento a la base, y se desprecia el bit de acarreo
1110 -2+ 1101 -3
1 1011 -5
Ejemplo: -2 + (-3) = -5
26
Tema 4. Aritmética binaria en los computadores
Resta en complemento a 2:Toda operación de resta en complemento a la base puede reducirse a un caso de suma, sin más que complementar previamente el sustraendo.Ejemplo: A = 6�10 = 0110�C2, B = 4�10 = 0100�C2, A-B = 2�10, n = 4, q = 0
Primero: complementar el sustraendo -B�C2 = C2(B�C2) = 1100�C2
Segundo: sumar A+(-B) 0110+ 1100
10010Ejemplo: A = -7�10 = 1001�C2, B = -3�10 = 1101 �C2, A-B = -4�10, n = 4, q = 0
Primero: complementar el sustraendo -B�C2 = C2(B�C2) = 0011�C2
Segundo: sumar A+(-B)1001
+ 0011
1100
El acarreo superior se desprecia,y el resultado es positivo
1414
27
Tema 4. Aritmética binaria en los computadores
� En sumas y restas en complemento a 2, el bit de acarreo superiorsiempre se desprecia, y el resultado obtenido siempre es correcto (salvo que se produzca desbordamiento).
� Desbordamiento en sumas y restas: se detecta porque el resultado presenta un signo erróneo.
Puede producirse desbordamiento al sumar dos números de igual signo o al restar dos números de distinto signo.
Nunca puede haber desbordamiento al sumar números de distinto signo o al restar números de igual signo.
El posible acarreo superior resultante en una suma o una resta no indica desbordamiento.
También puede producirse desbordamiento en productos y divisiones.
28
Tema 4. Aritmética binaria en los computadores
Ejemplos de sumas con desbordamiento
A = 6�10 = 0110�C2, B = 3�10 = 0011�C2, A+B = 9�10, n = 4, q = 0
0110 6+ 0011 + 3
1001 ¡¡-7!!
La suma de dos números positivos no puede producir un número negativo: hay desbordamiento (pero no acarreo)
A = -3�10 = 1101�C2, B = -7�10 = 1001�C2, A+B = -10�10, n = 4, q = 0
1101 -3+ 1001 + -7
10110 ¡¡6!!
La suma de dos números negativos no puede producir un número positivo: hay desbordamiento (y acarreo)
El acarreo superior se desprecia, y el resultado es positivo
1515
29
Tema 4. Aritmética binaria en los computadores
Aunque hay algoritmos para multiplicar y dividir directamente números en complemento a 2, no los vamos a estudiar todavía (tema 14).
De momento, para multiplicar y para dividir haremos lo siguiente:� Pasamos los operandos a positivos.
� Operamos en binario puro.
� Si el análisis de los signos de los operandos revela que el resultado (o el cociente o el resto) debe ser negativo, se complementa el dato obtenido.
De forma análoga a la aritmética estudiada para la representación en complemento a la base, se puede estudiar la aritmética para la representación en complemento restringido a la base (complemento a 1).
� El acarreo superior siempre se desprecia.
� Problema: si en sumas o restas el bit de acarreo superior vale 1, es preciso sumar 1 al resultado.
30
Tema 4. Aritmética binaria en los computadores
� Binario puro: no es posible.
� Magnitud y signo: basta con invertir el bit de signo.
� Complemento a 2: se lleva a cabo mediante la complementación.
Ejemplo 1: cambiar de signo el número A�C2 = 00011101�C2, n = 8, q = 0
-A�C2 = C2(A�C2) = 11100011�C2
Valor de -A�C2 = 11100011�C2 = 1x20 + 1x21 + 1x25 + 1x26 - 1x27 = -29
Ejemplo 2: cambiar de signo el número -A�C2 = 11100011�C2, n = 8, q = 0
-(-A�C2) = C2(-A�C2) = 00011101�C2
Valor de -(-A�C2) = 00011101�C2 = 1x20 + 1x22 + 1x23 + 1x24 = 29
Ejemplo 3: cambiar de signo el número B�C2 = 11001011�C2 , n = 8, q = 0
-B�C2 = C2(B�C2) = 00110101�C2
Valor de -B�C2 = 00110101�C2 = 1x20 + 1x22 + 1x24 + 1x25 = 53
� Complemento a 1: igual que en complemento a 2.
5.d. Cambio de signo
1616
31
Tema 4. Aritmética binaria en los computadores
Es una operación consistente en que, dado un número A representado con nbits, pasamos a representarlo con m bits, siendo n < m.
� Binario puro: se rellenan los bits sobrantes en el destino con 0.
Ejemplo: extender X = 0110�2 de 4 a 8 bits 011000000110
� Magnitud y signo: se desplaza a la izquierda el bit de signo, y el hueco en el destino se rellena con bits a 0.
Ejemplo 1: extender X = 100110�MS de 6 a 8 bits 100110
10000110
Ejemplo 2: extender X = 010011�MS de 6 a 8 bits 010011
00010011
5.e. Extensión de signo
32
Tema 4. Aritmética binaria en los computadores
� Complemento a 2: se replica el bit de signo hacia la izquierda.
Ejemplo 1: extender X = 100110�C2 de 6 a 8 bits 100110
11100110
Ejemplo 2: extender X = 010011�C2 de 6 a 8 bits 010011
00010011
� Complemento a 1: se hace igual que en complemento a 2.
1717
33
Tema 4. Aritmética binaria en los computadores
� C. CERRADA, V. FELIU. Estructura y Tecnología de Computadores I. U.N.E.D., 1993.� J.M. ANGULO, J.GARCÍA. Sistemas Digitales y Tecnología de Computadores.Paraninfo, 2002.� P. DE MIGUEL. Fundamentos de los Computadores. 7ª edición. Paraninfo, 1999.� W. STALLINGS. Organización y Arquitectura de Computadores. 5ªedición, Prentice Hall, 2000.� D.A. PATTERSON, J.L. HENNESSY. Estructura y Diseño de Computadores. Reverté, 2000.�A. PRIETO, A. LLORIS, J.C. TORRES. Introducción a la Informática. 3ªedición, McGraw-Hill, 2002.� L. RINCÓN. Representación Digital de la Información en los Computadores. Apuntes complementarios de la asignatura.
6. Bibliografía
Top Related