有人可以解释一下System.out.println((12 & 9));
打印8
的原因吗?
我不明白&的逻辑。在这种背景下的运营商。
谢谢!
答案 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,如下所示:
12
为1100
,9
为1001
。
&
操作将导致1000
。
其中1000
为8。