【发布时间】:2016-07-14 06:25:45
【问题描述】:
我知道strtol(hexstring, NULL, 16) 会将我的十六进制字符串hexstring 转换为十进制。同样,strtol(binstring, NULL, 2) 中的二进制也是这种情况。有没有一般的功能可以做到这一点?从一个基地到另一个基地?如果没有,有人可以提出最高效的方式吗?
【问题讨论】:
-
ints 在机器上不是“十进制”;它们是二进制的,但通常以十进制打印。itoa可以将整数转换为任意基数的字符串。 -
非常感谢,我会调查的!
-
然而,
itoa不是标准的 C 函数。顺便说一句,你可以很容易地编写一个代码。 -
除非您需要 2-36 范围之外的碱基(或碱基的非标准编码),
strtol()系列函数用于从字符串转换为内部(二进制、非字符串)格式.然后,您需要一个单独的函数将内部格式转换为任意基数的字符串格式。标准 C 没有提供这样的功能——你必须在别处寻找。 -
您可以使用此链接stackoverflow.com/questions/24916666/…。你会明白的。
标签: c string type-conversion base