Java"&"操作者

时间:2014-04-08 14:18:45

标签: java

有人可以解释一下System.out.println((12 & 9));打印8的原因吗?

我不明白&的逻辑。在这种背景下的运营商。

谢谢!

4 个答案:

答案 0 :(得分:18)

这是二进制。

12为1100,9为1001

应用逻辑“和”&运算符会得到1000,即8。

答案 1 :(得分:8)

It is Binary representation. (Machine Understandable language)
Here first place resembles  value - 1 (Right to Left)
Second place resembles  value - 2 (Right to Left)
Third place resembles  value - 4 (Right to Left)
Fourth place resembles  value - 8 (Right to Left)

<强>&安培;说1和1是真的(即1),其余的组合是假的(即0)

     12 - 1100
      9 - 1001
===============
      8 - 1000

答案 2 :(得分:4)

&安培;是一个按位和运算符。

12 = 1100
9 = 1001
1100 & 1001 = 1000
1000 = 8

答案 3 :(得分:1)

打印逻辑8与System.out.println((12 + 9));打印21相同。

运算符优先于被调用的方法,因此首先执行and操作,然后让其他任何事情发生。

这里你做的是简单的logical and,应该产生8,如下所示:

12110091001

&操作将导致1000。 其中1000为8。