fbpx
Wikipedia

Complemento a dos

El complemento a dos de un número N que, expresado en el sistema binario con n dígitos, se define como:

Binario (positivo) - Complemento a 2(negativo) Decimal
0111 7
0110 6
0101 5
0100 4
0011 3
0010 2
0001 1
0000 0
1111 −1
1110 −2
1101 −3
1100 −4
1011 −5
1010 −6
1001 −7
1000 −8

Complemento a dos con enteros de 4 bits

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

Veamos un ejemplo: tomemos el número que, cuando se expresa en binario es , con 6 dígitos, y calculemos su complemento a dos:

, ; y, por lo tanto:

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:

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.

Cálculo del complemento a dos

El cálculo del complemento a dos es muy sencillo y muy fácil de realizar mediante puertas lógicas, donde reside su utilidad.

Para comenzar los números positivos se quedarán igual en su representación binaria. Los números negativos deberemos invertir el valor de cada una de sus cifras, es decir realizar el complemento a uno, y sumarle 1 al número obtenido. Podemos observar esto en la tabla de ejemplo.

Cabe recordar que debido a la utilización de un bit para representar el signo, el rango de valores será diferente al de una representación binaria habitual; el rango de valores decimales para «n» bits será:

 

Conversión rápida

Una forma de hallar el opuesto de un número binario positivo en complemento a dos es comenzar por la derecha (el dígito menos significativo), copiando el número original (de derecha a izquierda) hasta encontrar el primer 1, después de haber copiado el 1, se niegan (complementan) los dígitos restantes (es decir, copia un 0 si aparece un 1, o un 1 si aparece un 0). Este método es mucho más rápido para las personas, pues no utiliza el complemento a uno en su conversión.[1]

Por ejemplo, el complemento a dos de «0011 11010» es «1100 00110»-

Otra forma es negar todos los dígitos (se halla el complemento a 1) y después sumar un 1 al resultado, viene a ser lo mismo que lo anteriormente explicado.

100001 ---> 011110 --> 011111

Es equivalente negar todos los dígitos haciendo XOR contra un número con la misma cantidad de dígitos binarios pero lleno de 1s y sumar 1 al resultado. En la práctica podría explicarse como:

100001 XOR 111111 = 011110
Agregando 1 = 011111

Para implementarlo en una rutina escrita en el lenguaje de programación C, asumiendo que 'x' es la cantidad a la que se le calculará el complemento a 2, 'n' el número máximo de bits de las cantidades representadas e 'y' es la variable en donde se almacenará el resultado. El cálculo podría 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 cálculo y disminuir los recursos de cómputo consumidos. Por ejemplo, si todos los cálculos son en 8 bits, la rutina anterior podría simplificarse a:

y=((x^^0xFF)++)&&0xFF; 

Aplicaciones

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 sustraendo. Se utiliza porque la unidad aritmético-lógica no resta números binarios, suma binarios negativos, por eso esta conversión al negativo.

Véase también

Referencias

  1. Rautenberg, Hans (2005). «Sistemas numéricos». Diseño de circuitos digitales. Concepción, Chile: Universidad de Concepción. ISBN 956-8029-66-4. 
  •   Datos: Q232577

complemento, complemento, número, expresado, sistema, binario, dígitos, define, como, binario, positivo, complemento, negativo, decimal0111, 70110, 60101, 50100, 40011, 30010, 20001, 10000, 01111, 11110, 21101, 31100, 41011, 51010, 61001, 71000, enteros, bits,. El complemento a dos de un numero N que expresado en el sistema binario con n digitos se define como Binario positivo Complemento a 2 negativo Decimal0111 70110 60101 50100 40011 30010 20001 10000 01111 11110 21101 31100 41011 51010 61001 71000 8Complemento a dos con enteros de 4 bits C 2 N 2 n N displaystyle C 2 N 2 n N dd dd El total de numeros positivos sera 2 n 1 1 displaystyle 2 n 1 1 y el de negativos 2 n 1 displaystyle 2 n 1 siendo n el numero maximo de bits El 0 contaria aparte Veamos un ejemplo tomemos el numero N 45 displaystyle N 45 que cuando se expresa en binario es N 101101 2 displaystyle N 101101 2 con 6 digitos y calculemos su complemento a dos N 45 displaystyle N 45 n 6 displaystyle n 6 2 6 64 displaystyle 2 6 64 y por lo tanto C 2 N 64 45 010011 2 displaystyle C 2 N 64 45 010011 2 dd dd Puede parecer farragoso pero es muy facil obtener el complemento a dos de un numero a partir de su complemento a uno porque el complemento a dos de un numero binario es una unidad mayor que su complemento a uno es decir C 2 N C 1 N 1 displaystyle C 2 N C 1 N 1 dd dd Cabe senalar que en este ejemplo se ha limitado el numero de bits a 6 por lo que no seria posible distinguir entre el 45 y el 19 el 19 en binario es 10011 En realidad un numero en complemento a dos se expresa con una cantidad arbitraria de unos a la izquierda de la misma manera que un numero binario positivo se expresa con una cantidad arbitraria de ceros Asi el 45 expresado en complemento a dos usando 8 bits seria 11010011 mientras que el 19 seria 00010011 y expresados en 16 bits serian 1111111111010011 y 0000000000010011 respectivamente Se presenta la tabla de verdad del complemento a 2 para cuatro digitos Indice 1 Calculo del complemento a dos 2 Conversion rapida 3 Aplicaciones 4 Vease tambien 5 ReferenciasCalculo del complemento a dos EditarEl calculo del complemento a dos es muy sencillo y muy facil de realizar mediante puertas logicas donde reside su utilidad Para comenzar los numeros positivos se quedaran igual en su representacion binaria Los numeros negativos deberemos invertir el valor de cada una de sus cifras es decir realizar el complemento a uno y sumarle 1 al numero obtenido Podemos observar esto en la tabla de ejemplo Cabe recordar que debido a la utilizacion de un bit para representar el signo el rango de valores sera diferente al de una representacion binaria habitual el rango de valores decimales para n bits sera 2 n 1 R a n g o 2 n 1 1 displaystyle 2 n 1 leq Rango leq 2 n 1 1 Conversion rapida EditarUna forma de hallar el opuesto de un numero binario positivo en complemento a dos es comenzar por la derecha el digito menos significativo copiando el numero original de derecha a izquierda hasta encontrar el primer 1 despues de haber copiado el 1 se niegan complementan los digitos restantes es decir copia un 0 si aparece un 1 o un 1 si aparece un 0 Este metodo es mucho mas rapido para las personas pues no utiliza el complemento a uno en su conversion 1 Por ejemplo el complemento a dos de 0011 11010 es 1100 00110 Otra forma es negar todos los digitos se halla el complemento a 1 y despues sumar un 1 al resultado viene a ser lo mismo que lo anteriormente explicado 100001 gt 011110 gt 011111Es equivalente negar todos los digitos haciendo XOR contra un numero con la misma cantidad de digitos binarios pero lleno de 1s y sumar 1 al resultado En la practica podria explicarse como 100001 XOR 111111 011110Agregando 1 011111Para implementarlo en una rutina escrita en el lenguaje de programacion C asumiendo que x es la cantidad a la que se le calculara el complemento a 2 n el numero maximo de bits de las cantidades representadas e y es la variable en donde se almacenara el resultado El calculo podria escribirse como y x 2 n 1 amp amp 2 n 1 Si n no va a cambiar a lo largo del programa puede sustituirse como una constante y con ello acelerar el calculo y disminuir los recursos de computo consumidos Por ejemplo si todos los calculos son en 8 bits la rutina anterior podria simplificarse a y x 0xFF amp amp 0xFF Aplicaciones EditarSu utilidad principal se encuentra en las operaciones matematicas con numeros binarios En particular la resta de numeros binarios se facilita enormemente utilizando el complemento a dos la resta de dos numeros binarios puede obtenerse sumando al minuendo el complemento a dos del sustraendo Se utiliza porque la unidad aritmetico logica no resta numeros binarios suma binarios negativos por eso esta conversion al negativo Vease tambien EditarComplemento a uno Representacion de numeros con signo ver la tabla de comparacion con otros codigos Aritmetica de saturacionReferencias Editar Rautenberg Hans 2005 Sistemas numericos Diseno de circuitos digitales Concepcion Chile Universidad de Concepcion ISBN 956 8029 66 4 Datos Q232577 Obtenido de https es wikipedia org w index php title Complemento a dos amp oldid 133263440, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos