Il complemento a 2 in C è generato dal complemento a 1 in C. Come sappiamo, il complemento a 1 di un numero binario viene creato trasformando il bit 1 in 0 e 0 in 1; il complemento a 2 di un numero binario viene generato aggiungendo uno al complemento a 1 di un numero binario.
In breve, possiamo dire che il complemento a 2 in C è definito come la somma del complemento a uno in C e uno.
Nella figura sopra, il numero binario è uguale a 00010100 e il suo complemento a uno viene calcolato trasformando il bit 1 in 0 e 0 in 1 viceversa. Pertanto, il complemento di uno diventa 11101011. Dopo aver calcolato il complemento di uno, calcoliamo il complemento di due aggiungendo 1 al complemento di uno e il risultato è 11101100.
Creiamo un programma di 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]="