gpt4 book ai didi

java - Java 中的位移

转载 作者:行者123 更新时间:2023-12-02 14:23:20 25 4
gpt4 key购买 nike

我正在尝试了解位移位的工作原理。有人可以解释一下这行的含义吗:

while ((n&1)==0) n >>= 1;

其中 n 是一个整数,并给我一个执行移位时 n 的示例。

最佳答案

分解:

n & 1 将在 n 和 1 之间进行二进制比较,即二进制的 00000000000000000000000000000001 。因此,当 n 以 1(正奇数或负偶数)结尾时,它将返回 00000000000000000000000000000001 ,否则返回 00000000000000000000000000000000

(n & 1) == 0 因此,如果 n 为偶数(或负奇数),则为 true,否则为 false。

n >> = 1 相当于 n = n >> 1。因此,它将所有位向右移动,这大致相当于除以二(向下舍入)。

如果例如n 开始时为 12,然后以二进制表示为 1100。一次循环后,它将为 110 (6),另一次循环后,它将为 11 (3),然后循环将停止。

如果n为0,那么下一次循环后它仍然是0,并且循环将是无限的。

关于java - Java 中的位移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3901253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com