【发布时间】:2014-07-17 10:09:06
【问题描述】:
结果是什么:
int x = 0x00000001;
int y = 0x80000000;
在大端系统中?
我的目标是定义一个 int,它设置了第一个(在内存中)位,无论它是最重要的还是最不重要的。我知道对于 little-endian 系统,x 可以满足这个要求,但在 big-endian 系统中仍然如此吗?
我很确定以下内容在两个系统中都可以使用:
char c[4] = {0x80, 0, 0, 0};
int x = (int) c;
正确吗?有没有更优雅的方法?
(我没有可以试验的大端系统)
【问题讨论】:
-
“第一个位组”?你对“第一”的定义是什么?恕我直言,这是最不重要的一个,在这种情况下,
0x00000001是您的答案,无论字节序如何。 -
第二种方法会将数组的地址转换为int,所以它不起作用。
-
第一个字节的第一位是高位还是低位?
-
好的,我对第一个的定义是内存中的第一个。
标签: c hex endianness