二进制数以基数 2 表示。它仅使用“0”和“1”两位数字。二进制数中的每个数字都是一个位。
示例二进制数 - 0100010111
1 的补码
二进制的补码number 是通过将二进制数的数字反转,即 1 转为 0,0 转为 1 得到的。
示例
'1’s Complement of 101100 = 010011
2 的补码
二进制数的补码是二进制数的补码加 1,即 1 的补码 + 1。
示例
'2’s complement of 101101 is 010011.
示例代码
查找一个和两个补码的代码 -
'#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