【发布时间】:2014-07-19 13:19:25
【问题描述】:
在以下关于 Little Endians 和 Big Endians 的程序中:
char *s = "1234";
printf("%08X\n",*(int *)s); //big endian
int little = ntohl(*s);
printf("%08X\n",little);//Little endian
我得到以下输出:
34333231
31000000
第二行的顺序应该与第一行相反。我究竟做错了什么? 我在 C 方面的经验很少,但在其他语言方面有一些经验。
【问题讨论】:
-
您将 ASCII 字符串与整数表示混淆了
-
ASCII 值 1 是 0x31,这不是你看到结果的原因
标签: c endianness