有人知道任何常用的 C++ 库,它提供了从基数 10 到基数 32 编码和解码数字的方法,反之亦然?
谢谢,斯特凡诺
原文由 Spac 发布,翻译遵循 CC BY-SA 4.0 许可协议
有人知道任何常用的 C++ 库,它提供了从基数 10 到基数 32 编码和解码数字的方法,反之亦然?
谢谢,斯特凡诺
原文由 Spac 发布,翻译遵循 CC BY-SA 4.0 许可协议
[更新] 显然,C++ std::setbase() IO 操作符和普通 <<
和 >>
IO 操作符只处理基数 8、10 和 16,因此对处理没有用基数 32。
所以要解决你的转换问题
您将需要求助于其他功能。
要将包含基本 2..36 表示的 C 样式字符串转换为整数,您可以使用 #include <cstdlib>
并使用 strtol(3)
& Co. 函数集。
至于将整数转换为具有任意基数的字符串……我找不到一个简单的答案。 printf(3)
样式格式字符串仅处理基数 8,10,16 AFAICS,就像 std::setbase
。任何人?
原文由 ndim 发布,翻译遵循 CC BY-SA 2.5 许可协议
3 回答1.3k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
4 回答855 阅读
1 回答926 阅读
1 回答961 阅读
1 回答726 阅读
1 回答827 阅读
您的意思是“base 10 to base 32”,而不是 整数到 base32 吗?后者似乎更有可能和更有用;默认情况下,标准格式的 I/O 函数在处理整数时会生成以 10 为基数的字符串格式。
对于基数 32 到整数的转换,标准库 strtol() 函数将执行此操作。对于互惠,您不需要库来轻松实现自己的东西(并非所有东西都是乐高积木)。
这是一个例子,不一定是最有效的,但很简单;