位運算總結

2021-09-07 19:27:36 字數 902 閱讀 7898

1. 按位運算子介紹

1.1 移位運算子

兩個移位運算子,左移(<<)和右移(>>)。分布表示將二進位制整數值向左移動和向右移動,騰出的位置用0填充,超出邊界的位捨棄。

// 二進位制表示為00000010

unsigned char a = 2;

// b 為 00000100

b = a << 1;

1.2 邏輯按位運算子

or(|)、xor(^)、and(&)、求反(~)

2.常用按位運算子技術

2.1 開啟位

將對應位設定為1, 而不管這位原來的值是多少。

// bit是2的冪,對應於特定位為1,其他位置都為0.

// lottabite = lottabite | bit;

lottabite |= bit;

2.2 切換位

如果對應位為1,切為0; 對應位為0, 切為1.

// ~是對所有位取反,所以不用。

lottabite ^= bit;

2.3 關閉位

不管對應位原值如何,都設定為0.

lottabite &= ~bit;
2.4 測試位

確定對應位是否為1.

// 判斷為true,必須每一位都相等

if (lottabite == bit) // not good

...// 正確做法.

if (lottabite & bite)

...

3.使用位運算巧妙解決演算法問題

乙個陣列中除了乙個數字出現一次,其他陣列都出現三次。找出只出現一次的數字。

位運算總結

位運算是指按二進位制進行的運算。在系統軟體中,常常需要處理二進位制位的問題。c語言提供了6個位操作 運算子。這些運算子只能用於整型運算元,即只能用於帶符號或無符號的char,short,int與long型別。c語言提供的位運算子列表 運算子 含義 描述 按位與 如果兩個相應的二進位制位都為1,則該位...

位運算總結

位運算是指按二進位制進行的運算。在系統軟體中,常常需要處理二進位制位的問題。c語言提供了6個位操作 運算子。這些運算子只能用於整型運算元,即只能用於帶符號或無符號的char,short,int與long型別。c語言提供的位運算子列表 運算子 含義 描述 按位與 如果兩個相應的二進位制位都為1,則該位...

位運算總結

一 優先順序 高 低 算術運算子 關係運算子 賦值 二 移位運算 要點 1 它們都是雙目運算子,兩個運算分量都是整形,結果也是整形。2 左移 右邊空出的位上補0,左邊的位將從字頭擠掉,其值相當於乘2。3 右移 右邊的位被擠掉。對於左邊移出的空位,如果是正數則空位補0,若為負數,可能補0或補1,這取決...