-2
String hexstr = "0x12AB450912AB450912AB450912AB450912AB4509";

我有一个长度为 40 字节的字符串。

我需要将上面的字符串转换为八进制(到 20 个字节)

char *endp;
strtoul(hexstr , &endp, 8);

要使用上述功能,它的工作时间很长,即 8 个字节。但我的字符串是 40 个字节。

有人能告诉我如何转换为八进制并存储回字符串吗?

4

1 回答 1

1

该函数返回一个无符号长整数,因此它将返回的最大值是8字节,假设它不会疯狂​​地尝试转换40字节字符串。没有标准的整数类型保存40字节。您可以通过将数字转换为二进制并读取每 3 位来获取该数字的八进制版本来做到这一点

于 2013-03-17T18:05:30.917 回答