工作中一直没用过位操作,只有在阅读一些源码的时候会看到使用位运算符(因为直接使用位运算符效率更高),为了更好的阅读源码那就好好学习一下吧,顺便把学习的东西记下来!
所有的位运算都是在二进制下来进行运算的,再二进制下只有0/1。
1. ~ 位求反
运算符规则是:将运算符后二进制数反转,0变1,1变0,所以对一个数取反偶数次结果是它本身。
例如:
0000 0000 0000 0000 0000 0000 0000 0011 -> 3 1111 1111 1111 1111 1111 1111 1111 1100 -> ~ 3 = -4
常用场景:
求相反数: ~a + 1
2.