To install click the Add extension button. That's it.

The source code for the WIKI 2 extension is being checked by specialists of the Mozilla Foundation, Google, and Apple. You could also do it yourself at any point in time.

4,5
Kelly Slayton
Congratulations on this excellent venture… what a great idea!
Alexander Grigorievskiy
I use WIKI 2 every day and almost forgot how the original Wikipedia looks like.
What we do. Every page goes through several hundred of perfecting techniques; in live mode. Quite the same Wikipedia. Just better.
.
Leo
Newton
Brights
Milds

Complemento a dos

De Wikipedia, la enciclopedia libre

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 complemento a dos de un número N que, expresado en el sistema binario con n dígitos, se define como:

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. 
Esta página se editó por última vez el 16 feb 2021 a las 11:26.
Basis of this page is in Wikipedia. Text is available under the CC BY-SA 3.0 Unported License. Non-text media are available under their specified licenses. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc. WIKI 2 is an independent company and has no affiliation with Wikimedia Foundation.