A C-beli 2-es komplementer a C-ben található 1-es komplementerből jön létre. Mint tudjuk, egy bináris szám 1-es komplementere az 1-es bit 0-ra és 0-ról 1-re való transzformációjával jön létre; egy kettes szám 2-es komplementerét úgy állítjuk elő, hogy egy kettes szám 1-es komplementeréhez hozzáadunk egyet.
Röviden azt mondhatjuk, hogy a C-beli 2-es komplementer a C-beli egyes komplementerének és az egyesnek az összege.
A fenti ábrán a bináris szám egyenlő 00010100-zal, és annak komplementerét úgy számítjuk ki, hogy az 1-es bitet 0-ra, a 0-t pedig 1-re alakítjuk fordítva. Ezért egy komplementerünk 11101011 lesz. A komplementer kiszámítása után a kettő komplementerét úgy számítjuk ki, hogy az egyes komplementeréhez hozzáadunk 1-et, és ennek eredménye 11101100.
Készítsünk 2-es komplementer programot.
#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]="