El complemento a 2 en C se genera a partir del complemento a 1 en C. Como sabemos, el complemento a 1 de un número binario se crea transformando el bit 1 en 0 y el 0 en 1; El complemento a 2 de un número binario se genera sumando uno al complemento a 1 de un número binario.
En resumen, podemos decir que el complemento a 2 en C se define como la suma del complemento a uno en C y uno.
En la figura anterior, el número binario es igual a 00010100 y su complemento a uno se calcula transformando el bit 1 en 0 y el 0 en 1 viceversa. Por lo tanto, el complemento a uno se convierte en 11101011. Después de calcular el complemento a uno, calculamos el complemento a dos sumando 1 al complemento a uno, y su resultado es 11101100.
Creemos un programa en complemento a 2.
#include int main() { int n; // variable declaration printf('Enter the number of bits do you want to enter :'); scanf('%d',&n); char binary[n+1]; // binary array declaration; char onescomplement[n+1]; // onescomplement array declaration char twoscomplement[n+1]; // twoscomplement array declaration int carry=1; // variable initialization printf(' Enter the binary number : '); scanf('%s', binary); printf('%s', binary); printf(' The ones complement of the binary number is :'); // Finding onescomplement in C for(int i=0;i<n;i++) { if(binary[i]="='0')" onescomplement[i]="1" ; else } onescomplement[n]="