int a = 0b01000;
int b = 0b10001;
&与运算符
&同时为1则为1
8&9其实做的运算就是00001000&00001001,
然后看到当且仅当两个对应的位置都是1,结果才是1,否则结果为0,
那么结果就是00001000,也就是8.
System.out.println(Integer.toBinaryString(a & b));
| 或运算符
| 有一个为1则为1 当且仅当两个对应的位置都是0,结果才是0,否则结果是1,
那么8|9就是00001000|00001001,结果就是00001001=9
System.out.println(Integer.toBinaryString(a | b));
^异或运算符 异或运算是:当运算符两边不同的时候结果为1,两边相同的时候结果为0 那么8|9就是00001000^00001001,结果就是00000001=1 System.out.println(Integer.toBinaryString(a ^ b));
>>位移运算符 位移运算符:将数字右移 9>>1 即 将9的二进制0001001 右移一位得到 00000100=4
00001001>>1=00000100=4 System.out.println(Integer.toBinaryString(a >>1));
>>>无符号位移运算符
~非运算符
相关代码:https://gitee.com/l23456789o/studygotogit