2017-08-04 174 views
0
while((number & 1) == 0) { 
    number >>>= 1; 
} 

我不太了解while循环中的条件,它代表'>>> ='。任何人都可以帮助解释这部分代码?

+0

看看重复你的问题的顶部,你发布的代码片段不会终止(可能需要刷新此页面查看)。另外这可能会让你感兴趣:https://stackoverflow.com/a/14923514/1393766 – Pshemo

回答

2

while循环中的条件测试number的最低位是否为零。

>>>=运算符是复合赋值运算符(请参阅教程here)。该声明是一样的:

number = number >>> 1; 

>>>操作是逐位右移零填充(见here)。它与>>不同,>>将填充符号位,而>>>总是填充零。

注意,如果number开始为0

相关问题