2s komplementas C yra generuojamas iš 1s komplemento C. Kaip žinome, dvejetainio skaičiaus 1s komplementas sukuriamas transformuojant bitą 1 į 0 ir 0 į 1; dvejetainio skaičiaus 2s komplementas generuojamas vieną pridedant prie dvejetainio skaičiaus 1s komplemento.
Trumpai tariant, galime pasakyti, kad 2s papildinys C yra apibrėžiamas kaip vieno C ir vieno papildinio suma.
Aukščiau pateiktame paveikslėlyje dvejetainis skaičius yra lygus 00010100, o jo komplementas apskaičiuojamas paverčiant bitą 1 į 0 ir 0 į 1 atvirkščiai. Todėl vieno komplementas tampa 11101011. Apskaičiavę savo komplementą, apskaičiuojame dviejų komplementą prie vieno komplemento pridėdami 1 ir jo rezultatas yra 11101100.
Sukurkime 2s komplemento programą.
#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]="