You are on page 1of 3

Complemento a dos

Complemento a dos
Complemento a dos Decimal 0111 0110 0101 0100 0011 0010 0001 0000 1111 1110 1101 1100 1011 1010 1001 1000 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8

Complemento a dos con enteros de 4 bits El complemento a dos de un nmero N que, expresado en el sistema binario est compuesto por n dgitos, se define como: . El total de nmeros positivos ser Veamos un ejemplo: tomemos el nmero dgitos, y calculemos su complemento a dos: Cabe sealar que en este ejemplo se ha limitado el nmero de bits a 6, por lo que no sera posible distinguir entre el -45 y el 19 (el 19 en binario es 10011). En realidad, un nmero en complemento a dos se expresa con una cantidad arbitraria de unos a la izquierda, de la misma manera que un nmero binario positivo se expresa con una cantidad arbitraria de ceros. As, el -45, expresado en complemento a dos usando 8 bits sera 11010011, mientras que el 19 sera 00010011; y expresados en 16 bits seran 1111111111010011 y 0000000000010011 respectivamente. Se presenta la tabla de verdad del complemento a 2 para cuatro dgitos. y el de negativos , siendo n el nmero mximo de bits. , con 6 que, cuando se expresa en binario es

Complemento a dos

Clculo del complemento a dos


El clculo del complemento a dos es muy sencillo y muy fcil de realizar mediante puertas lgicas, donde reside su utilidad. Para comenzar los nmeros positivos se quedarn igual en su representacin binaria. Los nmeros negativos deberemos invertir el valor de cada una de sus cifras, es decir realizar el complemento a uno, y sumarle 1 al nmero obtenido. Podemos observar esto en la tabla de ejemplo. Cabe recordar que debido a la utilizacin de un bit para representar el signo, el rango de valores ser diferente al de una representacin binaria habitual; el rango de valores decimales para n bits ser:

Conversin rpida
Una forma de hallar el opuesto de un nmero binario positivo en complemento a dos es comenzar por la derecha (el dgito menos significativo), copiando el nmero original (de derecha a izquierda) hasta encontrar el primer 1, despus de haber copiado el 1, se niegan (complementan) los dgitos restantes (es decir, copia un 0 si aparece un 1, o un 1 si aparece un 0). Este mtodo es mucho ms rpido para las personas, pues no utiliza el complemento a uno en su conversin. Por ejemplo, el complemento a dos de 0011 11010 es 1100 00110Otra forma es negar todos los dgitos (se halla el complemento a 1) y despus sumar un 1 al resultado, viene a ser lo mismo que lo anteriormente explicado. 100001 ---> 011110 --> 011111 Es equivalente negar todos los dgitos haciendo XOR contra un nmero con la misma cantidad de dgitos binarios pero lleno de 1s y sumar 1 al resultado. En la prctica podra explicarse como: 100001 XOR 111111 = 011110 Agregando 1 = 011111 Para implementarlo en una rutina escrita en el lenguaje de programacin C, asumiendo que 'x' es la cantidad a la que se le calcular el complemento a 2, 'n' el nmero mximo de bits de las cantidades representadas y 'y' es la variable en donde se almacenar el resultado. El clculo podra escribirse como: y=((x^^(2^n-1)++))&&(2^n-1); Si 'n' no va a cambiar a lo largo del programa, puede sustituirse como una constante y con ello acelerar el clculo y disminuir los recursos de cmputo consumidos. Por ejemplo, si todos los clculos son en 8 bits, la rutina anterior podra simplificarse a: y=((x^^0xFF)++)&&0xFF;

Aplicaciones
Su utilidad principal se encuentra en las operaciones matemticas con nmeros binarios. En particular, la resta de nmeros binarios se facilita enormemente utilizando el complemento a dos: la resta de dos nmeros binarios puede obtenerse sumando al minuendo el complemento a dos del sustraendo. Se utiliza porque la unidad aritmtico-lgica no resta nmeros binarios, suma binarios negativos, por eso esta conversin al negativo.

Referencias

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


Complemento a dos Fuente: http://es.wikipedia.org/w/index.php?oldid=67585200 Contribuyentes: Aloriel, Aolguin73, Bolisho, Calsbert, Carlos Alberto Carcagno, Diego Caro, Dodo, Foundling, Galandil, GermanX, Halfdrag, Hoenheim, Humbefa, Ignacio Icke, Ingolll, Irreverencieux, Luis Gonzalez, Manuel Castillo Cagigal, Moraleh, Munsuri, Piranna, Ponalgoyya, Porao, Roinpa, SuperBraulio13, Vitamine, 67 ediciones annimas

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/

You might also like