我正在努力弄清楚這一點,我試圖在大小兩端代表一個32位變量。爲了爭論,讓我們假設我們嘗試一個數字「666」。這些endian轉換是否正確?
大端:0010 1001 1010 0000 0000 0000 0000
小尾:0000 0000 0000 0000 0010 1001 1010
這是正確的,或者是我想錯了嗎?
我正在努力弄清楚這一點,我試圖在大小兩端代表一個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