二进制数的 1’s 和 2’s 补码?
二进制数以 2 为基数表示。它只使用两个数字,0 和 1。二进制数中的每个数字都是一个位。
二进制数范例:0100010111
1’s 补码
二进制数的一位补码通过反转二进制数的各位获得,即 0 换 1,1 换 0。
例
1’s Complement of 101100 = 010011
2’s 补码
二进制数的二位补码通过对二进制数的一位补码加 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
广告