Bitwise & (AND) 在 Java 中是如何工作的?

2022-09-01 01:58:53

我正在阅读一些代码示例,并在Oracle的网站的Bitwise和Bit Shift Operators页面上遇到了一个。在我看来,它没有很好地解释按位。我知道它直接对位进行操作,但我只是不确定哪种操作,我想知道该操作是什么。这是我从Oracle网站上得到的一个示例程序:http://docs.oracle.com/javase/tutorial/displayCode.html?code=http://docs.oracle.com/javase/tutorial/java/nutsandbolts/examples/BitDemo.java&&


答案 1

整数表示为内存中的位序列。对于与人类的交互,计算机必须将其显示为十进制数字,但所有计算都以二进制形式进行。 十进制存储在内存中。1231111011

运算符是按位的“And”。结果是两个数字中都打开的位。,因为在两者中都只打开了第一位。&1001 & 1100 = 1000

运算符是按位的“Or”。结果是在任一数字中打开的位。,因为两者中只有右侧的第二位为零。|1001 | 1100 = 1101

还有和运算符,分别是按位“Xor”和按位“Not”。最后是 和 移位运算符。^~<<>>>>>


在引擎盖下,可存储为任一存储或取决于系统。使用按位运算符,使用哪种表示并不重要,因为两种表示都被视为逻辑数。剥离前导零叶 。12301111011 00000000 00000000 0000000000000000 00000000 00000000 01111011000000000000000000000000011110111111011


答案 2

它是一个二元 AND 运算符。它执行一个 AND 运算,该运算是布尔逻辑的一部分,布尔逻辑通常用于计算中的二进制数。

例如:

0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1

您也可以对多位数字执行此操作:

01 & 00 = 00
11 & 00 = 00
11 & 01 = 01
1111 & 0101 = 0101
11111111 & 01101101 = 01101101
...

推荐