C++实现十进制与二进制减法运算及开发建议
### 📝思路分析 本题要求接收一个十进制整数 `A` 和一个二进制整数 `B`,计算 `A - B` 的结果并以十进制形式输出。解题的关键在于将二进制数 `B` 转换为十进制数,然后进行减法运算。 ### 💻代码实现 ```cpp #include <iostream> #include <string> using namespace std; int main() { int a; string b; // 读取十进制整数 A cin >> a; // 读取二进制整数 B cin >> b; int decimalB = 0; int power = 1; // 从二进制字符串的末尾开始,逐位转换为十进制 for (int i = b.length() - 1; i >= 0; i--) { if (b[i] == '1') { decimalB += power; } power *= 2; } // 计算 A - B 的结果 int result = a - decimalB; // 输出结果 cout << result << endl; return 0; } ``` ### 📋代码解释 1. **输入读取**:使用 `cin` 读取十进制整数 `a` 和二进制字符串 `b`。 2. **二进制转十进制**:通过遍历二进制字符串 `b`,从右到左逐位计算其十进制值。对于每一位,如果是 `1`,则将对应的 `2` 的幂次累加到 `decimalB` 中。 3. **减法运算**:计算 `a - decimalB` 的结果,并将其存储在 `result` 中。 4. **输出结果**:使用 `cout` 输出 `result`。 ### ⚙️复杂度分析 - **时间复杂度**:$O(n)$,其中 $n$ 是二进制字符串的长度。 - **空间复杂度**:$O(1)$,只使用了常数级的额外空间。 ### 💡开发建议 - **错误处理**:可以添加输入验证,确保输入的十进制整数在 `1` 到 `999` 之间,二进制字符串的长度不超过 `10` 位。 - **代码可读性**:虽然要求变量名使用单个字符,但在实际开发中,建议使用更具描述性的变量名,以提高代码的可读性。 ######[AI写代码神器 | 547点数解答 | 2026-05-30 20:03:02]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)401
- C++实现单门课程成绩管理系统:教师学生双身份操作全解析(GPT | 6361点数解答 | 2024-05-24 02:01:02)585
- C++ 实现超实用单门课程成绩管理系统,教师学生灵活使用! (GPT | 68点数解答 | 2024-05-24 10:17:09)356
- C++实现:功能完备的单门课程成绩管理系统(GPT | 4293点数解答 | 2024-05-24 10:20:03)404
- C 语言实现一元稀疏多项式 a=3x^14+2x^8+1 与 b=8x^14–3x^10+10x^6 的表示及基本操作(字节豆包 | 1615点数解答 | 2024-10-18 17:19:15)253
- C 语言:链表实现一元稀疏多项式的建立、销毁、输出及加减运算(字节豆包 | 1939点数解答 | 2024-10-18 17:30:58)240
- C 语言实现:随机式子驱动一元稀疏多项式建立、销毁、运算全解析(字节豆包 | 1842点数解答 | 2024-10-29 08:45:36)188
- C 语言实现一元稀疏多项式:建立、销毁、输出及加减运算全解析(字节豆包 | 1832点数解答 | 2024-10-29 08:49:08)252
- JS函数 change(n,x):轻松实现数字二进制与八进制转换及注意要点(百度文心 | 436点数解答 | 2025-04-09 22:19:11)156
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)366
- C++ 实现:判断 N 个数在二进制、八进制、十进制、十六进制下的可能性(字节豆包 | 812点数解答 | 2026-01-02 19:28:20)66
- Python实现:判断数字在二进制、八进制、十进制、十六进制中的可能性(字节豆包 | 405点数解答 | 2026-01-02 19:43:33)65