19
如何在C/C++中執行無符號右移(Java中的>>>)?如何在C/C++中執行無符號右移(Java中的>>>)?
如何在C/C++中執行無符號右移(Java中的>>>)?如何在C/C++中執行無符號右移(Java中的>>>)?
>>>
是無符號右移,所以我認爲,在C這將是一樣的
unsigned int foo;
unsigned int bar = foo >> whatever;
在C,得到一個無符號的轉變,你只是做一個無符號型的轉變。
unsigned int result = (unsigned int)valueToBeShifted >> shiftAmount;
注意,有沒有保證>>
上籤署的類型讓你在C簽署轉變 - 這是實現定義的行爲。然而,如果類型被簽名,大多數常見的實現會產生有符號的移位。