& (与):
int a = 111;
int b = 121;
int c = a&b ;
System.out.print(c);
&的计算过程是:a从十进制转换为二进制是:1101111
b从十进制转换为二进制是:1111001
1101001 --- 1 1得1 其余都为0
得到1101001之后,进行转换为十进制数,第0位是1(从右往左的顺序) 1*2的0次方 , 第1位是0 , 0*2的1次方,第2位是0,0*2的2次方,第3位是1,1*2的3次方
第4位是0,0*2的4次方,第5位是1,1*2的5次方,然后,将这些数值相加,得出的数据就是计算的最终结果。
1*2^0 + 0*2^1 + 0*2^2 + 1*2^3 + 0*2^4 + 1*2^5 + 1*2^6 = 105
c打印的结果为:105
|(或):
int a = 111;
int b = 121;
int c = a|b;
System.out.print(c);
只要有一个是1就是1其余为0
1101111
1111001
1111111
1*2^0 + 1*2^1 + 1*2^2 + 1*2^3 + 1*2^4 + 1*2^5 + 1*2^6 = 127
c打印的结果为:127
^(异与):
int a = 15;
int b = 2;
int c = a^b;
System.out.print(c);
1111
0010
1101 ---- 根据异与的运算规则 1 0 得 1 ; 1 1 得 0 .最后转换为十进制是13
c打印的结果为13