位操作的實用功能

2021-07-23 16:58:31 字數 1002 閱讀 7713

位操作雖然會降低程式的可讀性,但是我想,熱衷於位操作的人大概都是被它的效率所吸引了。如果某些簡單但常用的功能可以利用位操作實現,且用位操作實現的**量相同或更少,我希望讓這些位操作得到普及。

在介紹之前,先列舉一下位操作符

a&b     //按位與

a|b //按位或

a^b //按位異或

~a//按位取反

aa>>b //有符號右移

a>>>b //無符號右移

1. 交換兩個整數的值

剛開始接觸程式設計的時候我以為交換兩個變數一定需要乙個臨時變數,但是利用位操作交換兩個整數不必需要第三個變數。請看下面的例子:

int a = 9

;int b = 11

;a=a^b; //1001^1011=0010

b=b^a

; //1011^0010=1001

a=a^b; // 0010^1001=1011

如此便可以交換兩個整數的值而不必用第三個引數

2.快速判斷兩個值時候相等

在學彙編的時候我們也是用xor ax,ax來置零,而並非sub ax,ax。同樣道理,要判斷兩個int數字a,b是否相等,很多人會想到判斷a - b == 0,但是如果判斷a ^ b == 0效率將會更高。

3.判斷奇偶性

利用位操作判斷奇偶性可以寫成

int a=5;

return a&1; //偶數返回0,奇數返回1

4.除以2 & 乘以2

int a=5;

a>>1; //除以2

a<<1; //乘以2

xcode實用功能

佔位符 在 之間輸入提示語可得到像系統那種提示一樣的效果 快捷 將自己寫的 如常用的屬性,控制項的建立 拉到xocde的 倉庫裡面 設定completion shortcut為你想用的快捷碼,設定完成之後在xocde裡敲你設定的快捷碼即可得到你想要的 注意 屬性像 property nonatomi...

Arrays實用功能

1.列印陣列內容 arrays.tostring arr public static void main string args 輸出結果 arr1 11,11,11 arr2 22,22,22,22,22 比較兩個陣列是否相等,arrays.equals arr1,arr2 public stat...

Linux Shell 實用功能

tab 按鍵history 選項 history c 清除命令歷史記錄 history n 顯示最近n個歷史記錄使用歷史記錄的命令 執行上一條歷史記錄 6 執行第六條歷史記錄 8 test 執行第八條歷史記錄並在後面加上 test ls 執行上乙個ls命令 ls s cf g 執行上一條ls命令,其...