2011-04-30 59 views
0

我正在努力弄清楚这一点,我试图在大小两端代表一个32位变量。为了争论,让我们假设我们尝试一个数字“666”。这些endian转换是否正确?

大端:0010 1001 1010 0000 0000 0000 0000

小尾:0000 0000 0000 0000 0010 1001 1010

这是正确的,或者是我想错了吗?

+2

您显示的是28位数字。 – 2011-04-30 23:58:17

+1

拉斯曼的权利..即使他们是32你的转换是错误的。在这里阅读:http://en.wikipedia.org/wiki/Endianness – Heisenbug 2011-04-30 23:59:42

+0

Big endian意味着最重要的数字在最左边。 32位数字中最重要的数字超过20亿,那么下一个数字是十亿,等等。不用说,这意味着666的大端表示将在在你到达任何人之前离开。 – Doug 2011-05-01 00:03:41

回答

2

666(十进制)作为32位二进制表示为:

[0000 0000] [0000 0000] [0000 0010] [1001 1010](大端,最显著字节第一))

[1001 1010] [0000 0010] [0000 0000] [0000 0000](小端,至少显著字节第一)

Ref

(我用方括号将4位半字节分组为字节)

+0

你确定吗?不是由8位组成的字节?似乎从您的转换 – Heisenbug 2011-05-01 00:07:51

+0

谢谢,我想我明白我做错了什么。 – john 2011-05-01 00:17:21

+0

不客气。我也删除了我的错误答案。 – Heisenbug 2011-05-01 00:18:19