可以使用 C++ 标准库中的 std::bitset 类来进行二进制转换,同时可以使用 std::stringstream 类来进行其他进制的转换。

以下是一个将十进制数转换为任意进制的示例代码:

#include <bitset>
#include <sstream>

std::string toBase(int num, int base) {
    std::stringstream ss;
    while (num > 0) {
        int r = num % base;
        ss << (char)(r < 10 ? r + '0' : r - 10 + 'a');
        num /= base;
    }
    std::string result = ss.str();
    std::reverse(result.begin(), result.end());
    return result;
}

int main() {
    int num = 42;
    
    // 转换为二进制
    std::bitset<8> b(num);
    std::cout << b.to_string() << std::endl;
    
    // 转换为八进制
    std::string o = toBase(num, 8);
    std::cout << o << std::endl;
    
    // 转换为十六进制
    std::string h = toBase(num, 16);
    std::cout << h << std::endl;
    
    return 0;
}

输出结果为:

00101010
52
2a

其中 toBase 函数用于将十进制数转换为任意进制数,std::bitset 类用于将十进制数转换为二进制字符串。

C++ 数值进制转换库:二进制、八进制、十六进制转换

原文地址: https://www.cveoy.top/t/topic/npup 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录