C의 2s 보수는 C의 1s 보수에서 생성됩니다. 우리가 알고 있듯이 이진수의 1s 보수는 비트 1을 0으로, 0을 1로 변환하여 생성됩니다. 이진수의 2의 보수는 이진수의 1의 보수에 1을 더하여 생성됩니다.
간단히 말해서, C의 2의 보수는 C의 1의 보수와 1의 보수의 합으로 정의된다고 말할 수 있습니다.
위 그림에서 이진수는 00010100이고, 비트 1을 0으로, 0을 1로 그 반대로 변환하여 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]="