进制转换--
2026/9/7 0:51:17 网站建设 项目流程
string s = "1010"; int x = stoi(s, nullptr, 2); // 就是把字符串 "1010" 当成二进制数,转换成 C++ 的十进制整数。 第三个参数 2 表示:按照 2 进制来解释 s 1×2³ + 0×2² + 1×2¹ + 0×2⁰ = 8 + 0 + 2 + 0 = 10 stoi("1010", nullptr, 2); // 1010₂ → 10 stoi("17", nullptr, 8); // 17₈ → 15 stoi("1A", nullptr, 16); // 1A₁₆ → 26

我们平时用的是十进制:

345 = 3×10² + 4×10¹ + 5×10⁰
七进制则是:

345(7) = 3×7² + 4×7¹ + 5×7⁰

怎么把十进制变七进制?不断除以7,记录余数,,

  • 余数 = 当前最低位
  • 商 = 剩余高位继续处理

举例:100 转七进制

100÷7=14 余 2 最低位是2

14÷7=2 余 0 最低位是2

2÷7=0 余 2 最低位是2 202(七进制)就代表100

class Solution { public: std::string convertToBase7(int num) { // 特殊情况 if (num == 0) return "0"; bool negative = num < 0; num = abs(num); std::string res = ""; while (num > 0) { // res += char(num % 7 + '0'); res += static_cast<char>(num % 7 + '0'); num /= 7; } // res = static_cast<char>(remainder);这只是把整数值强制解释成对应编码的字符,不是把数字变成 '0'~'9' 字符。 // 反转字符串 reverse(res.begin(), res.end()); if (negative) { res = "-" + res; } return res; } };

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询