因为是位运算,所以必须先把数据换算成二进制
&位与运算,有0则0;例如
3&4=0;
00000000 00000000 00000000 00000011&
00000000 00000000 00000000 00000100=
00000000 00000000 00000000 00000000
|位或运算,有1则1.
3|4=7;
00000000 00000000 00000000 00000011 |
00000000 00000000 00000000 00000100=
00000000 00000000 00000000 00000111
^位异或运算:相同则0,不同则1;一个对象与或一个对象两次,该值为本身,a^b^b=a;
3^4=7;
00000000 00000000 00000000 00000011^
00000000 00000000 00000000 00000100=
00000000 00000000 00000000 00000111
~3=-4
~按位取反运算符:0变1,1变0;
~00000000 00000000 00000000 00000011
11111111 11111111 11111111 11111100(补码)
补码:11111111 11111111 11111111 11111100
反码:11111111 11111111 11111111 11111011
原码:10000000 00000000 00000000 00000100