gpt4 book ai didi

C - ntohl 用零替换数字

转载 作者:行者123 更新时间:2023-11-30 20:40:00 25 4
gpt4 key购买 nike

在以下关于小端和大端的程序中:

char *s = "1234";
printf("%08X\n",*(int *)s); //big endian
int little = ntohl(*s);
printf("%08X\n",little);//Little endian

我得到以下输出:

34333231
31000000

第二行应该与第一行相反。我究竟做错了什么?我对 C 的经验很少,但对其他语言有一些经验。

最佳答案

你需要这样的东西:

int little = ntohl(*((uint32_t*)s));

否则您只是将 char 传递给 ntohl,这就是您的值被截断的原因。

关于C - ntohl 用零替换数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24840847/

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