jueves, 9 de julio de 2015

Complemento a 2

El complemento a dos de un número N que, expresado en el sistema binario está compuesto por n dígitos, se define como:
C_2^N=2^n - N.

El total de números positivos será 2^{n-1}-1 y el de negativos 2^{n-1}, siendo n el número máximo de bits. El 0 contaría aparte.

Veamos un ejemplo: tomemos el número N = 45 que, cuando se expresa en binario es N=101101_2, con 6 dígitos, y calculemos su complemento a dos:
N=45, n=6; 2^6=64 y, por lo tanto:
C_2^N = 64-45 = 010011_2


Puede parecer farragoso, pero es muy fácil obtener el complemento a dos de un número a partir de su complemento a uno, porque el complemento a dos de un número binario es una unidad mayor que su complemento a uno, es decir:
C_2^N = C_1^N + 1

Cabe señalar que en este ejemplo se ha limitado el número de bits a 6, por lo que no sería posible distinguir entre el -45 y el 19 (el 19 en binario es 10011). En realidad, un número en complemento a dos se expresa con una cantidad arbitraria de unos a la izquierda, de la misma manera que un número binario positivo se expresa con una cantidad arbitraria de ceros. Así, el -45, expresado en complemento a dos usando 8 bits sería 11010011, mientras que el 19 sería 00010011; y expresados en 16 bits serían 1111111111010011 y 0000000000010011 respectivamente. Se presenta la tabla de verdad del complemento a 2 para cuatro dígitos.

Su utilidad principal se encuentra en las operaciones matemáticas con números binarios. En particular, la resta de números binarios se facilita enormemente utilizando el complemento a dos: la resta de dos números binarios puede obtenerse sumando al minuendo el complemento a dos del substraendo. Se utiliza porque la unidad aritmético-lógica no resta números binarios, suma binarios negativos, por eso esta conversión al negativo.
             

la forma mas sencilla de representar esta formula seria de la siguiente manera:
C2(x)=2n -x

de manera mas amplia:

C2(x)=2n -x-1+1

simplificando la formula anterior queda así: 

C2= C1(x)+1


una manera fácil para hacer la operación de C1 y C2 sabiendo que el C1 se invierten los números:


No hay comentarios:

Publicar un comentario