1.首先先说说^(异或运算),先看代码
public static void main(String[] args) {
System.out.println("2^3运算的结果是 :"+(2^...3)); //打印的结果是:2^3运算的结果是 :1}
那么这个1是怎么来的,我们要知道^、>等位运算符主要针对二进制,算异或的时候相同的为0,不同的为1
2转换成二进制是0010...//2<<3运算的结果是 :16}
在运算的时候同样要把十进制转换成二进制, 2的二进制是0010 ,向左移3位后面用000不齐,结果是10000 二进制的10000转换成十进制是16(从右往左分别是1,2,4,8,16,32...&运算 按位“与”的计算是把两个数字分别写成二进制形式,然后按照每一位判断,&计算中,只要有一个是0就算成0
看下例子:System.out.println(1&2);打印0 , System.out.println...(1&1);打印1
下面解释下原因
1的二进制为:0001
2的二进制为:0010
运算的结果为:0000 ->0
同理两个1的&运算的二进制结果为0001->结果为1