解题思路: 首位是符号位 1为负数 0为整数
负数补码为反码加一 整数补码为原码
注意事项:字符串存储
参考代码:
#include<iostream> using namespace std; int main(void) { string a; cin>>a; if(a[0]=='1') //判断是否为负数 { for(int i=1;i<16;i++) //变为反码 if(a[i]=='1') a[i]='0'; else a[i]='1'; for(int i=15;i>=1;i--) //给最后一位+1,因为是二进制 所以0变成1,1变成0并向前进位 if(a[i]=='1') a[i]='0'; else { a[i]='1'; break; } } cout<<a<<endl; return 0; }
0.0分
2 人评分