gpt4 book ai didi

java - 按位与 (&) 运算符

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:42:49 24 4
gpt4 key购买 nike

我读到执行 & 0x7fffffff 只会屏蔽符号位,不会篡改其他位。

int a = Integer.MIN_VALUE;
System.out.println(a & 0x7fffffff);

但是,这段代码输出

0

代替

2147483648

这是为什么?

最佳答案

Java 中的负数存储为二进制补码。因此,最小值已设置符号位,而所有其他值均未设置。所以你要做的是:

  10000000000000000000000000000000
& 01111111111111111111111111111111

当您清除符号位时,您得到零。

  00000000000000000000000000000000

来源:https://en.wikipedia.org/wiki/Two%27s_complement

关于java - 按位与 (&) 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32880820/

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