Java整数的按位与"&"运算

4

我有以下内容:

 int a = 10001000;
 int b = 10000000;

我需要以下输出:

 (a&b) = 10000000;

但我的问题是,在使用"&"操作之前,Java会将整数转换为二进制,我真的很想能够以上述方式在整数上使用这个操作。这可行吗?


1
“按位与”(bitwise and)顾名思义,是对比特进行操作的。你不能让它在十进制数字上运行。想象一下,如果你使用它来计算数字4和数字3的&,结果应该是什么? - Henry
1个回答

7

首先,您需要使用0b来表示ab是二进制字面值。其次,您需要使用类似于Integer.toBinaryString(int)的方法来获取按位&运算的二进制结果,例如:

int a = 0b10001000, b = 0b10000000;
System.out.printf("(a&b) = %s;%n", Integer.toBinaryString(a & b));

输出(按要求)

(a&b) = 10000000;

好的,是否有可能将字符串“0b10001000”转换回二进制整数表示形式?另外,感谢您的回答。 - Fancypants753
@Fancypants753 int 是一个32位二进制类型。你在问什么?如何说 int c = 136;还是 System.out.println(Integer.parseInt("0b10001000".substring(2), 2)); - Elliott Frisch
我想要类似于 Integer.parseInt("0b10001000"); 的东西返回 int 0b10001000。 - Fancypants753

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接