Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如何将以下代码翻译为目标 c?(值是一个整数)
while (value != 0) { value >>>= 1;
>>> 运算符是否有通用替代品?
不直接支持该操作,因此您需要使用掩码。根据value变量的大小,您需要选择不同大小的掩码。如果value是short,请使用0x7FFF;如果value是long long,请使用0x7FFFFFFFFFFFFF.
value
short
0x7FFF
long long
0x7FFFFFFFFFFFFF
while (value != 0) { value >>= 1; value &= 0x7FFFFFFF; }
或者,您可以声明value为无符号:然后常规移位分配不会对value. 事实上,将>>>运算符添加到 Java 的很大一部分原因是该语言中没有无符号类型。
>>>