C:n 2s-komplementti generoidaan C:n 1s-komplementista. Kuten tiedämme, binääriluvun 1s-komplementti luodaan muuttamalla bitti 1 arvoksi 0 ja 0 arvoksi 1; binääriluvun 2s-komplementti generoidaan lisäämällä yksi binääriluvun 1s-komplementtiin.
Lyhyesti sanottuna voidaan sanoa, että C:n 2s-komplementti määritellään C:n yhden komplementin ja yhden komplementin summaksi.
Yllä olevassa kuvassa binääriluku on yhtä kuin 00010100 ja sen komplementti lasketaan muuntamalla bitti 1 arvoksi 0 ja 0:ksi 1 päinvastoin. Siksi komplementista tulee 11101011. Komplementin laskemisen jälkeen lasketaan kahden komplementin komplementti lisäämällä ykkösen komplementtiin 1 ja sen tulos on 11101100.
Luodaan 2s-komplementin ohjelma.
#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]="