Doplnok 2s v C sa generuje z doplnku 1 v C. Ako vieme, doplnok 1s binárneho čísla je vytvorený transformáciou bitu 1 na 0 a 0 na 1; 2s doplnok binárneho čísla sa generuje pridaním jednotky k 1s doplnku binárneho čísla.
V skratke môžeme povedať, že dvojkový doplnok v C je definovaný ako súčet jedničkového doplnku v C a jedničky.
Na obrázku vyššie sa binárne číslo rovná 00010100 a jeho jeden doplnok sa vypočíta transformáciou bitu 1 na 0 a 0 na 1 naopak. Preto sa jeden doplnok stane 11101011. Po vypočítaní svojho doplnku vypočítame dvojku tak, že k doplnku jedničky pripočítame 1 a výsledkom je 11101100.
Vytvorme program 2s doplnku.
#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]="