Допълнението 2s в C се генерира от допълнението 1s в C. Както знаем, допълнението 1s на двоично число се създава чрез трансформиране на бит 1 в 0 и 0 в 1; допълнението 2s на двоично число се генерира чрез добавяне на единица към допълнението 1s на двоично число.
Накратко, можем да кажем, че допълнението 2s в C се определя като сбор от допълнението на единица в C и едно.
В горната фигура двоичното число е равно на 00010100, а неговото допълнение към единица се изчислява чрез трансформиране на бит 1 в 0 и 0 в 1 обратно. Следователно допълнението на единица става 11101011. След като изчислим допълнението на единица, ние изчисляваме допълнението на двете, като добавим 1 към допълнението на единицата и резултатът е 11101100.
Нека създадем програма от 2s допълнение.
#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]="