【基本技巧】位運算-基礎位運算

計算機的各種運算最後無不歸結于一個個bit的變化。掌握并利用位運算既可以裝逼又可以幫助咱們理解程序運行中的種種表現,提高程序的運行效率,降低編程複雜度。

基本算術位運算:
1.與,and,&
相同位的數同為1,結果才為1,否則都為0
應用:
判斷奇偶。
一個數and 1就是取其二進制最末位,為0就是偶數,為1就是奇數。

2.或,or,|
相同位只要有一個1,結果就是1
應用:
or运算通常用于二进制特定位上的无条件赋值,例如一个数or 1的结果就是把二进制最末位强行变成1。如果需要把二进制最末位变成0,对这个数or 1之后再减一就可以了,其实际意义就是把这个数强行变成最接近的偶数。

3.非,not,~
把一個數的每一位都是0變1,1變0;
使用時需注意,數是否有符號(補碼,反碼)

4.異或,xor,^
相同位不同则为1,相同则为0;
有個美妙的性質:
異或的逆運算就是其本身,也就是说两次异或同一个数最后结果不变。