gpt4 book ai didi

java - 位运算符 java

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

我的代码是

final int CONST_1 = 1010;
final int CONST_2 = 1011;

System.out.println("CONST_1 & CONST_2: " + Integer.toBinaryString(CONST_1 & CONST_2));
System.out.println("CONST_1 ^ CONST_2: " + Integer.toBinaryString(CONST_1 ^ CONST_2));
System.out.println("CONST_1 | CONST_2: " + Integer.toBinaryString(CONST_1 | CONST_2));
System.out.println("~CONST_1 : " + Integer.toBinaryString(~CONST_1));

输出为

CONST_1 & CONST_2: 1111110010
CONST_1 ^ CONST_2: 1
CONST_1 | CONST_2: 1111110011
~CONST_1 : 11111111111111111111110000001101

我认为这是错误的,应该是:

CONST_1 & CONST_2: 1010
CONST_1 ^ CONST_2: 1
CONST_1 | CONST_2: 1011
~CONST_1 : 101

请解释一下为什么我会得到这样的结果。谢谢!

最佳答案

更改此:

final int CONST_1 = 1010;
final int CONST_2 = 1011;

对此:

final int CONST_1 = 0b1010;
final int CONST_2 = 0b1011;

不要忘记默认情况下文字是十进制的。您显然希望它们是二进制的。

<小时/>

二进制文字需要 Java 1.7。因此,如果不可用,您可以使用以下方法:

final int CONST_1 = Integer.parseInt("1010",2);
final int CONST_2 = Integer.parseInt("1011",2);

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

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