如何在C/C++中执行无符号右移(在Java中>>>)?
2022-09-01 12:51:25
如何在C/C++中执行无符号右移(在Java中>>>)?
如何在C/C++中执行无符号右移(在Java中>>>)?
在 C 中,要获得无符号移位,只需对无符号类型执行移位即可。
unsigned int result = (unsigned int)valueToBeShifted >> shiftAmount;
请注意,不能保证在有符号类型上为您提供 C 中的有符号移位 - 这是实现定义的行为。但是,如果类型已签名,则大多数常见实现都会生成已签名的移位。>>
>>>
是无符号的右移位,所以我认为在C中这将与
unsigned int foo;
unsigned int bar = foo >> whatever;