如何在C/C++中执行无符号右移(Java中的>>>)?
发布于 2010-03-12 07:44:45
>>>
是无符号右移位,所以我认为在C中这应该是相同的
unsigned int foo;
unsigned int bar = foo >> whatever;
发布于 2010-03-12 07:46:22
在C中,要获得无符号移位,只需对无符号类型进行移位。
unsigned int result = (unsigned int)valueToBeShifted >> shiftAmount;
请注意,不能保证有符号类型上的>>
提供C的有符号移位--这是实现定义的行为。然而,如果类型是带符号的,大多数常见的实现都会产生带符号的移位。
https://stackoverflow.com/questions/2429479
复制相似问题