c++数据的低字节与高字节的一个问题

来源:百度知道 编辑:UC知道 时间:2024/05/19 14:43:18
有一道题,是TC上的:
union change
{char c[2];
int a;
}un;
main()
{un.a=16961;
printf("%d%c\n",un.c[0],un.c[0]);
printf("%d%c",un.c[1],un.c[1]);}
最后结果是65A
66B
解释说16961转换为二进制为0100001001000001,但由于计算机物理内存结构的原因,数据的低字节在左边,高字节在右边。所以内存中存储的是0100000101000010.如果是这样的话,那整型是实型数据也这么存?望详解。

整数和长整数都是低字节在前,高字节在后。实数型不同,采用的是浮点数的方式,比较复杂,一般考试是不会要求手工计算的,具体的你可以参考计算机组成原理的书。

以上。
专业路过的老狼

是的,window平台的字节顺序属于Little-Endian,多字节数据都是这样存的。