这些endian转换是否正确?
问题描述:
我正在努力弄清楚这一点,我试图在大小两端代表一个32位变量。为了争论,让我们假设我们尝试一个数字“666”。这些endian转换是否正确?
大端:0010 1001 1010 0000 0000 0000 0000
小尾:0000 0000 0000 0000 0010 1001 1010
这是正确的,或者是我想错了吗?
答
666(十进制)作为32位二进制表示为:
[0000 0000] [0000 0000] [0000 0010] [1001 1010]
(大端,最显著字节第一))
[1001 1010] [0000 0010] [0000 0000] [0000 0000]
(小端,至少显著字节第一)
Ref。
(我用方括号将4位半字节分组为字节)
您显示的是28位数字。 – 2011-04-30 23:58:17
拉斯曼的权利..即使他们是32你的转换是错误的。在这里阅读:http://en.wikipedia.org/wiki/Endianness – Heisenbug 2011-04-30 23:59:42
Big endian意味着最重要的数字在最左边。 32位数字中最重要的数字超过20亿,那么下一个数字是十亿,等等。不用说,这意味着666的大端表示将在在你到达任何人之前离开。 – Doug 2011-05-01 00:03:41