解题思路:
正数的补码即其原码,负数的补码,除符号位取反加一(reverse、add1)
注意事项:
参考代码:
#include<bits/stdc++.h> using namespace std; void reverse(string& s) { for (int i = 1; i < 16; ++i) { if (s[i] == '0') s[i] = '1'; else s[i] = '0'; } } void add1(string& s) { bool carryBit = false; if (s[15] == '0') { s[15] = '1'; } else { s[15] = '0'; carryBit = true; for (int i = 14; i >= 0; --i) { if (s[i] == '0' && carryBit) { s[i] = '1'; carryBit = false; break; } if (s[i] == '1' && carryBit) { s[i] = '0'; } } } } int main() { string s; cin >> s; if (s[0] != '0') { reverse(s); add1(s); } cout << s << endl; return 0; }
0.0分
5 人评分
2005年春浙江省计算机等级考试二级C 编程题(3) (C语言代码)浏览:390 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:511 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:524 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:574 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:583 |
WU-输出九九乘法表 (C++代码)浏览:1671 |
WU-小九九 (C++代码)浏览:1684 |
三角形 (C++代码)递推浏览:760 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:594 |
简单的a+b (C语言代码)浏览:540 |