2012-02-29 19 views
0

我有一個查詢方法的選擇從字提取一個字節。我的字目前是無符號的。它只是32位(1s和0s)的集合。我實現的follwing腳本都返回了相同的結果。我想知道哪個是更好的選擇。字節提取,這是兩個更好的方法

Bytes0=(UINT8)((Word>>00 & 0x0000FF); 
Bytes1=(UINT8)(Word>>08 & 0x0000FF); 
Bytes2=(UINT8)(Word>>16 & 0x0000FF); 
Bytes3=(UINT8)(Word>>24 & 0x0000FF); 

or 
Bytes0=(UINT8)((Word>>00); 
Bytes1=(UINT8)(Word>>08); 
Bytes2=(UINT8)(Word>>16); 
Bytes3=(UINT8)(Word>>24); 

我錯過了什麼嗎?

感謝 DSP蓋伊

回答

0

演員到UINT8被丟棄除最低的所有字節。因此,在第一種情況下,您將高位字節轉換爲0,然後丟棄它們;在第二個你簡單地丟棄他們。假設你正在分配給UINT8,第二種選擇顯然更有效。

+0

感謝您的回答。還有一個問題,如果它被簽名而不是未簽名,它會有什麼影響? – user437777 2012-02-29 03:55:20

+0

它改變了>>運算符填充位的方式。但是由於這些位被拋棄了,最終的結果應該是一樣的。 – svachalek 2012-02-29 05:53:32

相關問題