C の 2 の補数は、C の 1 の補数から生成されます。ご存知のとおり、2 進数の 1 の補数は、ビット 1 を 0 に、0 を 1 に変換することによって作成されます。 2 進数の 2 の補数は、2 進数の 1 の補数に 1 を加算することによって生成されます。
つまり、C の 2 の補数は、C の 1 の補数と 1 の和として定義されると言えます。
上の図では、2 進数は 00010100 に等しく、その 1 の補数はビット 1 から 0、0 から 1 を逆に変換することによって計算されます。したがって、1の補数は11101011になります。1の補数を計算した後、1の補数に1を加えて2の補数を計算し、その結果は11101100となります。
2の補数のプログラムを作ってみましょう。
#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]="