Komplement 2s v C je ustvarjen iz komplementa 1s v C. Kot vemo, je komplement 1s binarnega števila ustvarjen s pretvorbo bita 1 v 0 in 0 v 1; komplement 2s binarnega števila se ustvari z dodajanjem ena k komplementu 1s binarnega števila.
Na kratko lahko rečemo, da je komplement 2s v C definiran kot vsota komplementa enice v C in ena.
Na zgornji sliki je binarno število enako 00010100, njegov komplement ena pa se izračuna s pretvorbo bita 1 v 0 in 0 v 1 obratno. Zato postane komplement ene 11101011. Po izračunu komplementa ene izračunamo komplement dveh tako, da komplementu enice prištejemo 1, rezultat pa je 11101100.
Ustvarimo program 2s komplementa.
#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]="