^ 异或 两边的位不同时结果为1,否则为0
简诉:这个可以理解f(a!=b) 如果不同结果为1,否则为0
例子:比如 2 ^ 3 == 10^11 第二位都是1所以第二位的0,,第二位不同所以为1 。最终结果01=1
~ 非 0变1 1变0
简诉:取反。可连接if(!a) 1 变 0 0 变1
例子:比如~2 = 00000000000000000~30个0后面跟10 根据上诉换算出结果-3
& 与 两边位都是1为1,其余是0
简诉:可直接理解为必须(and),在if判断&& 2边都相同才能为1
例子: 2&3 == 10&11 最终结果10 =2
| 或 两边只要有一个为1时等于1,不是的话为0
简诉:可直接理解为或者。在if判断时候|| 只要满足一个就为1!不是为0
例子:2|3 == 10|11 最终结果11 =3
<< 左移 移位运算符(可简单理解 左移几位就成为几个2)
简诉:理解为A乘以2的B次方
2<<3 10 左移3位的 10000 最终等于16
>> 右移 高位补符号 移位运算符
简诉:理解为A除以2的B次方
16>>3 10000右移三位的 10 最终等于2
>>> 无符号右移,高位补0 移位运算符(负数)
-8 >> 3 1111,1111,1111,1000 (具体是因为16位。0000~0000~0000~1000l,反转得到1111,,1111,1111,0111,在补移位得到值)
在右移三维得到0001,,1111,1111,1111打印得出最终结果
536870911