Este documento explica dos métodos para representar números enteros en binario: complemento a 1 y complemento a 2. En complemento a 1, los números positivos se representan agregando un 0 a la izquierda de su valor binario, mientras que los números negativos se obtienen cambiando los ceros por unos y viceversa. En complemento a 2, los números positivos se representan agregando ceros a la izquierda, mientras que los números negativos se obtienen realizando el complemento a 1 y sumando 1. Se proveen ejemplos para ilustrar ambos métodos.
1. ESCUELA POLITÉCNICA NACIONAL
FUNDAMENTOS DE CIENCIAS DE LA COMPUTACIÓN
Jossué Dután
Grupo 3 SIS-404
Primer Semestre
2015/04/30
REPRESENTACIÓN DE ENTEROS EN BINARIO
Complemento a 1
Es una operación aritmética que se usa frecuentemente para representar los números negativos. En binario
se obtiene cambiando los unos por los ceros y los ceros por los unos. Se diferencia la escritura de un
número entero positivo de un negativo de la siguiente forma:
Si el número es positivo se representa su magnitud con n-1 bits, y se añade un 0 a la izquierda: Magnitud
(n-1 bits).
Si el número es negativo se representa su equivalente positivo, utilizando n-1 bits para la magnitud y
añadiendo un 0 a la izquierda, tal y como se explicó anteriormente, pero al final realizamos el cambio de
ceros por unos y unos por ceros: Ca1 (Magnitud (n-1 bits)).
Es importante tomar en cuenta que al realizar la representación en complemento a 1, el primer bit que se
encuentra a la izquierda indica el signo del número, y se lo llama bit de signo.
Ejemplos:
1. Utilizando 6 bits representar el número 21 en complemento a 1.
Primero calculamos la magnitud del número con (n-1) bits, llenamos con ceros a la izquierda si es
necesario:
(n-1): (6-1) = 5 bits
2110: 101012
Segundo como se trata de un número positivo agregamos un cero a la izquierda:
2110: 0101012
2. Utilizando 8 bits representar el número +27 en complemento a 1.
Primero, calculamos la magnitud del número con (n-1) bits, llenamos con ceros a la izquierda si
es necesario:
(n-1): (8-1) = 7 bits
2710: 00110112
Segundo, como se trata de un número positivo agregamos un cero a la izquierda:
2710: 000110112
3. Utilizando 8 bits representar el número -29 en complemento a 1.
2. Primero, calculamos la magnitud del número con (n-1) bits, llenamos con ceros a la izquierda si
es necesario:
(n-1): (8-1) = 7 bits
2910: 00111012
Segundo, como se trata de un número negativo agregamos un cero a la izquierda para obtener su
entero positivo:
2910: 000111012
Tercero, obtenemos el -29 realizando el complemento a 1 a +29, es decir, reemplazando los ceros
por los unos y los unos por los ceros:
-2910 = Ca1 (+2910) = Ca1 (000111012) = 111000102
Complemento a 2
El complemento es por lo general la forma más usada en computación para representar un número entero
negativo. Si se trata de un número positivo simplemente se añaden 0s a la izquierda del número en binario
para completar los espacios de acuerdo a el número total de bits; en cambio, el procedimiento para un
número negativo es primero obtener el complemento a 1 de ese número y sumarle un uno mediante la
suma binaria.
Cabe mencionar que al igual que el complemento a 1 el primer bit de la izquierda (bit del signo) nos
indican si el número es positivo o negativo: 0 si es positivo y 1 si es negativo.
Una forma más fácil de proceder a convertir el binario en complemento a 2 es: encontrar el primer “1”
partiendo de derecha a izquierda e invertir todos los 0s y los 1s que se encuentran a su izquierda.
Ejemplos:
1. Utilizando 8 bits representar el número +19 en complemento a 2.
Primero, encontramos el número 19 en binario:
1910= 100112
Segundo, llenamos de 0s a la izquierda de acuerdo al número de bits:
1910= 000100112
Tercero, como se trata de un número positivo, ese sería nuestro número en complemento a 2.
2. Utilizando 8 bits representar el número -20 en complemento a 2.
Primero, encontramos el número +20 en binario:
2010= 101002
Segundo, llenamos de 0s a la izquierda de acuerdo al número de bits:
2010= 000101002
Tercero, como se trata de un número negativo, se procede a realizar el complemento a 1 del
número:
-2010 = Ca1 (+2010) = Ca1 (000101002) = 111010112
Cuarto, sumamos 1 mediante la suma binaria:
(111010112 + 1) = 111011002
3. Utilizando 8 bits representar el número -20 en complemento a 2, por medio de la transformaci{on
directa.
Primero, encontramos el número +20 en binario:
2010= 101002
Segundo, llenamos de 0s a la izquierda de acuerdo al número de bits:
3. 2010= 000101002
Tercero, como se trata de un número negativo buscamos el primer 1 de derecha a izquierda:
2010= 000101002
Cuarto, invertimos todos los bits que se encuentran a su izquierda:
-2010= 111011002
Bibliografía:
1. Martí Campoy, Antonio. “Representación de números enteros: el convenio complemento a uno”.
Universidad Politécnica de Valencia. Disponible en:
https://riunet.upv.es/bitstream/handle/10251/38421/complemento_a_uno.pdf?sequence=1
2. Curso en Línea de Electrónica Digital I. “Representación de números enteros y de punto
flotante”. Universidad Nacional de Colombia. Disponible en:
http://www.virtual.unal.edu.co/cursos/ingenieria/2000477/lecciones/010301.htm
3. Rautenberg, Hans (2005). «Sistemas numéricos». Diseño de circuitos digitales. Concepción,
Chile: Universidad de Concepción.