2010-03-11 32 views

回答

15

>>>是無符號右移,所以我認爲,在C這將是一樣的

unsigned int foo; 
unsigned int bar = foo >> whatever; 
24

在C,得到一個無符號的轉變,你只是做一個無符號型的轉變。

unsigned int result = (unsigned int)valueToBeShifted >> shiftAmount; 

注意,有沒有保證>>上籤署的類型讓你在C簽署轉變 - 這是實現定義的行爲。然而,如果類型被簽名,大多數常見的實現會產生有符號的移位。

相關問題