
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÷714 余 2 最低位是214÷72 余 0 最低位是22÷70 余 2 最低位是2 202七进制就代表100class 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_castchar(num % 7 0); num / 7; } // res static_castchar(remainder);这只是把整数值强制解释成对应编码的字符不是把数字变成 0~9 字符。 // 反转字符串 reverse(res.begin(), res.end()); if (negative) { res - res; } return res; } };