2011-04-30 57 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