如何在C / C ++中执行无符号右移(在Java中>> >>)?
如何在C / C ++中执行无符号右移(在Java中>> >>)?
>>>
是无符号右移,所以我认为在C中这将是相同的
unsigned int foo; unsigned int bar = foo >> whatever;
在C中,要获得无符号移位,只需对无符号类型进行移位。
unsigned int result = (unsigned int)valueToBeShifted >> shiftAmount;
请注意,无法保证签名类型上的>>
为您提供C中的签名class次 – 这是实现定义的行为。 但是,如果类型已签名,则最常见的实现会生成带符号的移位。