gpt4 book ai didi

用于十进制和任意基数之间转换的c++模板

转载 作者:搜寻专家 更新时间:2023-10-31 00:44:23 33 4
gpt4 key购买 nike

是否有一个 c++ 结构或模板(在任何库中)允许我在十进制和任何其他基数之间进行转换(很像 bitset 可以做的)?

最佳答案

是的,你可以使用unsigned int:

unsigned int n =   16; // decimal input
unsigned int m = 0xFF; // hexadecimal input

std::cout << std::dec << "Decimal: " << n << ", " << m << std::endl;
std::cout << std::hex << "Hexadecimal: 0x" << n << ", 0x" << m << std::endl;

也支持八进制,但对于其他基数,您最好编写自己的算法 - 它本质上是 C++ 中的三行代码:

std::string to_base(unsigned int n, unsigned int base)
{
static const char alphabet[] = "0123456789ABCDEFGHI";
std::string result;
while(n) { result += alphabet[n % base]; n /= base; }
return std::string(result.rbegin(), result.rend());
}

unsigned int from_base(std::string, unsigned int base) 函数类似。

关于用于十进制和任意基数之间转换的c++模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8870121/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com