How do I perform an unsigned right shift (>>> in Java) in C/C++?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
>>>
is unsigned right shift, so I would think that in C this would be the same as
unsigned int foo;
unsigned int bar = foo >> whatever;
回答2:
In C, to get an unsigned shift, you just do a shift on an unsigned type.
unsigned int result = (unsigned int)valueToBeShifted >> shiftAmount;
Note that there is no guarantee that >>
on a signed type gives you a signed shift in C -- this is implementation defined behavior. Most common implementations produce a signed shift if the type is signed, however.