|、&、~、^运算符
二进制计算里面 | 两数同位是0对应位才是0
1|2 = (0001 或 0010) = 0011 = 3
复制代码
&两数同位是1对应位才是1
1&2 = (0001 且 0010) = 0000 = 0
复制代码
^两数同位相同都取0,不同都取1
1^2 = (0001 异或 0010) = 0011 = 3
复制代码
~每位取反的补码
~2 = 11101(补) = 10010(原)+1 = -(2+1) = -3
补码的转换规则是:最左符号位不变,其余位取反再加1
复制代码
二进制位运算都是整数运算,计算前都会进行取整,所以可以巧用位运算符来小数取整
~~2.345 = 2
0|3.222 = 3
复制代码
还有移位运算符,但是平时很少用到
<<
左移运算符
>>
右移运算符