酷代码 AI
菜单
服务商

输入用字符串表示的原码,求这个原码表示的十进制数。最高位符号位是从右往左数第8位。为了简化计算,保证数值位只有最低4位可能为1,其余位都是0。 输入: 1个字符串表示的原码 输出: 1个整数 输入样例: 10000001 输出样例: -1 时间/内存: 1000MS/100MB c++

```cpp #include <iostream> #include <string> int main() { std::string originalCode; std::cin >> originalCode; int sign = (originalCode[0] == '1') ? -1 : 1; // 从右往左提取低4位数值位 int value = 0; for (int i = 4; i < 8; ++i) { if (originalCode[i] == '1') { value += (1 << (7 - i)); } } int decimal = sign * value; std::cout << decimal << std::endl; return 0; } ``` 代码解释: 1. 输入处理:使用`std::cin`读取用户输入的原码字符串`originalCode`。 2. 符号位判断:通过检查原码字符串的第一个字符(最高位)来确定符号,如果是`'1'`,则符号为负,用`-1`表示;如果是`'0'`,则符号为正,用`1`表示。 3. 数值位提取与计算:从右往左提取低4位数值位。使用一个循环遍历低4位,当遇到`'1'`时,把对应的2的幂次加到`value`中。 4. 计算十进制数:将符号和数值相乘得到最终的十进制数。 5. 输出结果:使用`std::cout`输出计算得到的十进制数。 [2026-02-07 20:02:58 | AI问答 | 345点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多