gpt4 book ai didi

c++ - C strtoll 十六进制到无符号长整型

转载 作者:行者123 更新时间:2023-11-30 21:37:08 25 4
gpt4 key购买 nike

我有像这样的十六进制字符串 769cb353f44f 37679162ec73。

当我使用strtoul(prt, null or ptr, 16)时, strtoull(prt, null or ptr, 16)strtoumax(prt, null or ptr, 16)仅最后 8 个字节被转换为 unsigned long。

像这样ffffffffb353f44f ffffffff9162ec73

我希望这些字符串存储为它们所代表的数字。

有谁知道如何解决这个问题,或者至少知道为什么会发生这种情况?

最佳答案

您将需要 unsigned long long,因为字符串太大,无法放入 unsigned long。

然后您还需要检查是否将结果设置为 unsigned long long 并使用 %llX (十六进制格式的 unsigned long long)打印它

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main()
{
const char * ptr = "769cb353f44f";
unsigned long long num;

num = strtoull(ptr, NULL, 16);

printf("%llx\n", num);

return 0;
}

关于c++ - C strtoll 十六进制到无符号长整型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37473367/

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