任何人都可以帮助解释这部分代码吗?

时间:2017-08-04 19:38:49

标签: java

while((number & 1) == 0) {
   number >>>= 1;
}

我不太了解while循环中的条件,它代表'>>> ='。

1 个答案:

答案 0 :(得分:2)

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

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

相同
number = number >>> 1;

>>>运算符是一个带有零填充的按位右移(参见here)。它与>>的不同之处在于>>将填充符号位,而>>>始终填充零。

请注意,如果number从0开始,您发布的代码片段将永远不会终止。