【发布时间】:2011-01-26 15:12:31
【问题描述】:
如何在 C/C++ 中执行无符号右移(Java 中为 >>>)?
【问题讨论】:
标签: java c bit-manipulation
如何在 C/C++ 中执行无符号右移(Java 中为 >>>)?
【问题讨论】:
标签: java c bit-manipulation
>>> 是无符号右移,所以我认为在 C 中这与
unsigned int foo;
unsigned int bar = foo >> whatever;
【讨论】:
在 C 中,要获得无符号移位,只需对无符号类型进行移位。
unsigned int result = (unsigned int)valueToBeShifted >> shiftAmount;
请注意,不能保证有符号类型上的>> 会在 C 中为您提供有符号移位——这是实现定义的行为。但是,如果类型是有符号的,最常见的实现会产生有符号移位。
【讨论】: