Dopełnienie 2s w C jest generowane z dopełnienia 1s w C. Jak wiemy, uzupełnienie 1s liczby binarnej jest tworzone poprzez przekształcenie bitu 1 na 0 i 0 na 1; uzupełnienie 2s liczby binarnej jest generowane przez dodanie jedynki do uzupełnienia 1s liczby binarnej.
Krótko mówiąc, możemy powiedzieć, że uzupełnienie do 2s w C definiuje się jako sumę dopełnienia do jedynki w C i jeden.
Na powyższym rysunku liczba binarna jest równa 00010100, a jej uzupełnienie jest obliczane poprzez transformację bitu 1 na 0 i 0 na 1 odwrotnie. Dlatego dopełnienie wynosi 11101011. Po obliczeniu dopełnienia do dwóch obliczamy dopełnienie do dwóch, dodając 1 do dopełnienia do jedynki, otrzymując wynik 11101100.
Stwórzmy program uzupełnienia do dwójki.
#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]="