高等作業系統(2009 年春)

11 views
Skip to first unread message

ellingtonsu

unread,
Mar 5, 2009, 12:07:36 AM3/5/09
to 課程討論
請大家多多利用此留言版發表任何與課程相關的問題!

郭昭霆

unread,
Apr 13, 2009, 11:34:43 AM4/13/09
to 課程討論
在 03linuxkernel 的投影片中 最後一段討論到 big endian 和 little endian 裡面有 圖和 範
例 感覺上有衝突阿

在範例中 big endian 為 0X12 0X34 0X56 0X78
在圖中則 byte 0 1 2 3
24-31 16-23 08-15 01-07 int


這到底是哪邊對阿

臨時抱佛腳 希望不要抱到地雷的人留

蘇維宗

unread,
Apr 14, 2009, 2:21:32 AM4/14/09
to ellingto...@googlegroups.com
上課也許我沒有說得很清楚
表示資料 0x12345678 時,我們稱最左邊的位元(組)為 Most Significant Bit(Byte) (MSB);最右邊的位元(組)為 Least Significant Bit(Byte) (LSB)
Little Endian 的架構是將 MSB 放在記憶體位址較高的方向; LSB 放在記憶體較低的方向
Big Endian 的架構則是將 MSB 放在記憶體位址較低的方向;LSB放在記憶體較高的方向
 
以 0x12345678 為例,0x12 為 MSB;0x78 為 LSB,因此
在Little Endian 架構中
記憶體位址 0(低)           1         2        3(高)
                 0x78(LSB)   0x56   0x34   0x12(MSB)
在Bid Endian 架構中
記憶體位址 0(低)            1         2        3(高)
                 0x12(MSB)   0x34   0x56   0x78(LSB)
 
課本的圖是把bit 24 ~ 31當作MSB;bit 0 ~ 7當作LSB,所以造成了有衝突的感覺。
這部分我會在新的投影片中作修正,謝謝~~
2009/4/13 郭昭霆 <srac...@gmail.com>
Reply all
Reply to author
Forward
0 new messages