2012-04-21 68 views
0

我正在閱讀非常有趣的大課和小課endianness。僞代碼示例說明如何將longInt(4字節)從大端轉換爲小端或相反的東西。十六進制按位運算

Function Reverse (N:LongInt) : LongInt ; 
    Var B0, B1, B2, B3 : Byte ; 
    Begin 
    B0 := (N AND $000000FF) SHR 0 ; 
    B1 := (N AND $0000FF00) SHR 8 ; 
    B2 := (N AND $00FF0000) SHR 16 ; 
    B3 := (N AND $FF000000) SHR 24 ; 
    Reverse := (B0 SHL 24) OR (B1 SHL 16) OR (B2 SHL 8) OR (B3 SHL 0) ; 
    End ; 

該代碼是這樣的,我有麻煩從第一行用十六進制表示法。他們如何從這裏提取第一個字節

B0 := (N AND $000000FF) SHR 0 ; 

?什麼做手術

N AND $000000FF 

做什麼?

我看到了什麼,併爲二進制表示,但什麼是十六進制表示?接下來的幾行我都感到驚訝。

感謝和問候。

回答

1

十六進制數字相當於4個連續的二進制數字,例如, C < ==>1100。按位操作對等效的二進制表示進行操作。