이진수는 2진법으로 표현됩니다. '0'과 '1' 두 자리 숫자만 사용합니다. 이진수의 각 숫자는 비트입니다. .
샘플 이진수 - 0100010111
1의 보수
이진수의 1의 보수는 이진수의 자릿수를 반대로 하여 얻습니다. 즉 1을 0으로, 0을 1로 변환합니다.
예
1’s Complement of 101100 = 010011
2의 보수
이진수의 2의 보수는 이진수의 1의 보수에 1을 더하여 얻습니다(예:1의 보수 + 1).
예
2’s complement of 101101 is 010011.
예시 코드
1과 2의 보수를 구하는 코드 -
#include <iostream> #include<string.h> using namespace std; int main() { char binary[10] = "01001011"; cout<<“Binary number is ”<<binary; //once complement.... int length = strlen(binary); for(int i=0;i<length;i++) { if(binary[i] == '0') { binary[i]= '1'; } else binary[i] = '0'; } cout<<“One’s Complement is ”<<binary<<endl; // cout<<binary[length-1]; for(int i = length-1; i>=0; i--) { // cout<<binary[i]; if(binary[i] == '0') { binary[i] = '1'; //cout<<binary[i]; break; } else { binary[i] = '0'; } } cout<<“Two’s complement is ”<<binary; return 0; }
출력
Binary number is 01001011 One’s complement is 10110100 Two’s complement is 10110101