第2个回答 推荐于2017-09-04
& 是java的位运算符,众所周知,计算机的基本计算方式是二进制,而位运算符完成的就是二进制的运算,也就是0和1的运算,&是位运算符的一种,表示与(and),同样的还有~(Not),表示取反;符号^(or),表示或,就&符号来说,运算结果如下:
0 & 0 = 0,0 &1 = 0,1 & 0 = 0,1 & 1 = 1
比如42的二进制是00101010,15的二进制00001111
那么(42&15)就是00001010 10
而&&是逻辑运算符,它计算的是两个boolean值,也就是说,他的左边和右边都是boolean值,而不是像&可以是整数或字符。
true && false =false,只有都是true才是true
下面是一个将整数转成二进制的例子,可以帮助你更好地理解位运算符的意义:
public class Zhidao2 {
public static void changeToBit(int input) {
System.out.print("The bit of "+input+":");
for(int i=7;i>=0;i--) {
if(((1<<i)&input)!=0)
System.out.print(1);
else
System.out.print(0);
}
System.out.println();
}
public static void main(String[] args) {
Zhidao2.changeToBit(15);
Zhidao2.changeToBit(42);
}
};
将1左移之后与其他二进制数字对比,并取得&运算符的值。本回答被提问者采纳