aritmetica binaria
Post on 15-Aug-2015
38 Views
Preview:
TRANSCRIPT
1
Aritmética Binaria
© Luis Entrena, Celia López, Mario García, Enrique San Millán
Universidad Carlos III de Madrid
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 2
Índice l Representación de números con signo
• Sistemas de Signo y Magnitud, Complemento a 1 y Complemento a 2
• Propiedades del sistema de Complemento a 2
l Aritmética Binaria • Adición y Sustracción • Multiplicación y División
l Representación de números reales
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 3
Representación de números con signo
l Los números con signo tienen dos partes: signo y magnitud
l Es necesario codificar el signo del número para poder representarlo utilizando sólo 0s y 1s: • Normalmente se codifica el signo con un 0 para números
positivos y un 1 para números negativos
l Según diferentes formas de codificar la magnitud se obtienen 3 diferentes sistemas de representación: • Signo y magnitud • Complemento a 1 • Complemento a 2
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 4
Representación Signo y Magnitud l Los números en el sistema de Signo y Magnitud se
codifican de la siguiente forma: • El MSB es el signo (0 si es positivo o 1 si es negativo) • El resto de los bits son la magnitud del número a representar,
codificada en binario natural
l Ejemplos:
+2510 = 011001SM
-2510 = 111001SM
2510 = 11001BIN
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 5
Complemento a 1 l Los números en el sistema de Complemento a 1 se
codifican: • Si el número es positivo:
• El MSB es un 0 (signo) • El resto de los bits son la magnitud en binario natural
• Si el número es negativo: • El MSB es un 1 (signo) • El resto de los bits son el complemento (a 1) de la magnitud
l Ejemplos: +2510 = 011001Ca1
-2510 = 100110Ca1
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 6
Complemento a 2 l Los números en el sistema de Complemento a 2 se
codifican: • Si el número es positivo:
• El MSB es un 0 (signo) • El resto de los bits son la magnitud en binario natural
• Si el número es negativo: • El MSB es un 1 (signo) • El resto de los bits son el complemento a 2 de la magnitud.
• El complemento a dos de un número es su complemento + 1
• Equivalentemente, se puede definir como (siendo n el número de bits):
l Ejemplos: +2510 = 011001Ca2
-2510 = 100111Ca2
1)(2 += AACa
AACa n −= 2)(2)1111....111122( +=+−=−+−=− AAAA nn
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 7
Complemento a 2 l No hay que confundir los conceptos de “operación
de complementar a 2” y “representación en complemento a 2” de un número: • Operación de complementar a 2 de un número A:
• Representación en complemento a 2 de un número A: • Hay que distinguir si es positivo o negativo, sólo en el caso de que sea
negativo dicha representación se obtiene aplicando la operación de complementar a 2.
l La representación en complemento a 2 es la más utilizada en los sistemas digitales para números con signo.
12)(2 +=−= AAACa n
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 8
Extensión del número de bits l Un mismo número se puede representar con
diferente número de bits:
l Para extender el signo: • En SM:
• Añadir ceros justo después del signo • En Ca1 y Ca2:
• Si es positivo añadir ceros a la izquierda • Si es negativo añadir unos a la izquierda
+2510 = 011001SM = 0000011001SM = 000000000011001SM
+2510 = 011001Ca2 = 0000011001Ca2 = 000000000011001Ca2
-2510 = 100111Ca2 = 1111100111Ca2 = 11111111111100111Ca2
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 9
Complemento a 2
Codificación SM Ca1 Ca2
0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 2 2 2 0 1 1 3 3 3 1 0 0 -0 -3 -4 1 0 1 -1 -2 -3 1 1 0 -2 -1 -2 1 1 1 -3 -0 -1
l En SM y en Ca1 hay dos codificaciones distintas que representan el 0 l En Ca2 la representación del 0 es única
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 10
Complemento a 2
l Otra propiedad del Ca2 es que el complemento a 2 del complemento a 2 de un número es el mismo número (la operación inversa del Ca2 es el propio complemento a 2):
Dem:
l De lo cual se deduce esta otra propiedad:
Dem: Si ACa2 es positivo, entonces por la propia definición de representación en Ca2 Si ACa2 es negativo, entonces -ACa2 se obtiene haciendo la operación inversa del Ca2, pero como
, se tiene que
l Ejemplo:
)(A Ca2 A– Ca2Ca2 =
Partiendo de un número positivo: 00001001 (+9)
Realizando la operación de Ca2: 11110111 (-9)
Realizando la operación de Ca2: 00001001 (+9)
Ca2Ca2 A ))Ca2(Ca2(A =222
n2 )2(2))(Ca2(-2 ))Ca2(Ca2( CaCa
nnCaCa AAAA =−−==
)(A Ca2 A– Ca2Ca2 =Ca2Ca2 A ))Ca2(Ca2(A =
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 11
Complemento a 2
l Otra forma de calcular el complemento a 2 de un número: l Empezando por el LSB, dejar iguales los bits hasta encontrar el primer 1
e invertir el resto: l Ca2(11100100) =00011100
Comprobación: Ca2(11100100) = 00011011 + 1 = 00011100
l Otra forma de convertir de Ca2 a decimal:
l Considerar el peso del signo como negativo l Ejemplos:
l 11102 = 1*(-23) + 1*22 + 1*21 + 0*20 = -8 + 4 + 2 = -210
l 01102 = 0*(-23) + 1*22 + 1*21 + 0*20 = 4 + 2 = 610
l Demostración: l Si A es positivo el peso del signo será cero, y por tanto la magnitud es la suma del resto de
pesos l Si A es negativo el peso será -2n, y por tanto el número que se obtendrá es:
-2n + A = -Ca2(A) = -(-A) = A
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 12
Suma binaria
l Las sumas de números naturales en binario se realizan igual que en decimal:
l Utilizando la representación de los números en Ca2, el método es válido también para números con signo, si se siguen las siguientes reglas. • Operandos con el mismo número de bits • Se descarta el acarreo final • Si los dos operandos tienen el mismo signo, y el resultado de la operación
tiene signo diferente el resultado no es válido. Se dice que hay desbordamiento (“overflow”):
• Esto sucede porque haría falta un bit adicional para poder representar el resultado.
1001 (9) + 1101 (13) 10110 (22)
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 13
Suma binaria en Ca2: Ejemplos l Dos números positivos:
(+9) + (+4)
0 1001Ca2 (+9)
+ 0 0100Ca2 (+4)
0 1101Ca2 (+13)
l Número positivo grande y número negativo pequeño: (+9) + (-4)
0 1001Ca2 (+9)
+ 1 1100Ca2 (-4)
1 0 0101Ca2 (+5)
l Dos números negativos: (-9) + (-4)
1 0111Ca2 (-9)
+ 1 1100Ca2 (-4)
1 1 0011Ca2 (-13)
l Número positivo pequeño y número negativo grande: (-9) + (+4)
1 0111Ca2 (-9)
+ 0 0100Ca2 (+4)
1 1011Ca2 (-5)
l Números iguales de signo contrario: (+9) + (-9)
0 1001Ca2 (+9)
+ 1 0111Ca2 (-9)
1 0 0000Ca2 (0)
l Overflow: (+1) + (+1)
0 1Ca2 (+1)
+ 0 1Ca2 (+1)
1 0Ca2 (-2)
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 14
Resta binaria
l Para realizar restas binarias se utiliza la propiedad vista anteriormente del complemento a 2:
Y por tanto:
O equivalentemente:
l En los sistemas digitales se representan los números con signo en Ca2, y no se utilizan restadores (no hacen falta), sólo sumadores
)(B Ca2 A B– A Ca2Ca2Ca2Ca2 +=
1B A B– A Ca2Ca2Ca2Ca2 ++=
)(A Ca2 A– Ca2Ca2 =
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 15
Multiplicación binaria l Las multiplicaciones en binario se realizan de forma similar a las
multiplicaciones en decimal:
l En el caso de números con signo se utiliza la representación en complemento a 2: • Si los dos números son positivos, se realiza directamente la operación. Al resultado
se añade un bit de signo 0 (el resultado es un número positivo). • Si los dos números son negativos, se complementan a 2, se multiplican y al resultado
se añade un bit de signo 0 (el resultado es un número positivo). • Si uno de los números es negativo, se hace el Ca2 de ese número, se multiplica por
el otro, y al resultado se le realiza el Ca2 y se le añade un bit de signo 1 (el resultado es negativo).
1001 (9) 1101 (13) 1001 0000 1001 1001______ 1110101 (117)
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 16
División binaria
l La división se realiza también como en sistema decimal:
l En el caso de números con signo se utiliza la representación en complemento a dos y las mismas reglas que para la multiplicación en cuanto a signos.
1001 / 11 -011 0011 0011 -11 0
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 17
Representación de números reales
l Los números reales se pueden representar de dos formas: • Punto fijo • Punto flotante
l Punto fijo: • La coma decimal se considera fija en un punto.
• Ejemplo: Datos de 32 bits, utilizar 20 bits para la parte entera y 12 bits para los decimales • Fácil realizar las operaciones de sumas, restas, multiplicaciones y divisiones vistas
hasta ahora • Notación: Qm,n
• m: número de bits de la parte entera (opcional) • n: número de bits para la parte decimal • Se utiliza un bit adicional para el signo (en total hacen falta m+n+1 bits). • Ejemplos: Q16,16, Q.32, etc.
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 18
Representación de números reales
l Punto flotante: • La coma decimal es “flotante” • Se descompone el número en dos partes: mantisa y exponente:
N = M x bE Ejemplos:
• 2547,3510 = 2,54735 * 103 • 0,003510 = 3,5 * 10-3
• 111,01102 = 1,110112 * 22 • 0,0011012 = 1,1012 * 2-3
• Se utiliza un número fijo de bits para la mantisa, otro para el exponente y otro adicional para el signo
• Normalización: Fija la posición de la coma decimal en la descomposición (para tener una representación única)
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 19
Representación de números reales
l Standard IEEE 754: Precisión simple (32 bits) • Se utiliza 1 bit para el signo • Se utilizan 8 bits para el exponente (E) • Se utilizan 23 bits para la mantisa (M) • Números normalizados: N= (-1)s * 2E-127 * 1.M
• E puede tomar valores entre 1 y 254 (el exponente está desplazado por -127) • El cero se representa como todo ceros en los campos E y M (es una excepción) • Algunas otras excepciones: E = 255 denota infinito (utilizado en casos de overflow,
por ejemplo) • También se pueden representar números no normalizados (E=0). La descomposición
es diferente, la mantisa es 0.M
l Standard IEEE 754: Precisión doble (64 bits) • Representación similar • 1 bit para signo, 11 bits para exponente, 52 bits para mantisa
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 20
Representación de números reales
l Ejemplo: Representar -7.62510 en precisión sencilla
-7.62510 = -111.1012
Descomponiendo en la forma N= (-1)s * 2E-127 * 1.M :
-111.1012 = (-1)1 * 1.11101 * 22
S = 1
M = 11101
2 = E -127 è E = 12910 = 100000012
Por tanto el número representado con precisión sencilla:
1 10000001 1110100000000000000000
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 21
Representación de números reales
l Operaciones aritméticas con números en coma flotante: más complejas • Suma:
• Modificar uno de los números para que tengan el mismo exponente (denormalizarlo) • Normalizar el resultado una vez realizada la operación
• Resta: • Análogo a la suma. Añade complejidad de convertir a complemento a 2
• Multiplicación: • Sumar exponentes • Multiplicar mantisas • Redondear y normalizar
• División: • Análogo a la multiplicación
l Debido a la complejidad de las operaciones en coma flotante, muchos circuitos electrónicos digitales (microprocesadores por ejemplo) tienen módulos dedicados a realizar estas operaciones
Referencias
l Digital Systems Fundamentals. Thomas L. Floyd. Pearson Prentice Hall
l Introduction to Digital Logic Design. John P. Hayes. Addison-Wesley
l Digital Systems. Principles and Applications. Ronald J. Tocci. Pearson Prentice Hall.
© Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 22
top related