Complementul 2s din C este generat din complementul 1s din C. După cum știm că complementul 1s al unui număr binar este creat prin transformarea bitului 1 la 0 și 0 la 1; complementul 2 al unui număr binar este generat prin adăugarea unuia la complementul 1 al unui număr binar.
Pe scurt, putem spune că complementul 2 din C este definit ca suma complementului unu din C și unu.
În figura de mai sus, numărul binar este egal cu 00010100, iar complementul său unul este calculat transformând bitul 1 la 0 și 0 la 1 invers. Prin urmare, complementul unu devine 11101011. După ce calculăm complementul, calculăm complementul a doi adăugând 1 la complementul unu, iar rezultatul acestuia este 11101100.
Să creăm un program de complement 2s.
#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]="