1、~ 按位取反
& 按位與
| 按位或
^ 按位異或
2、結合律 a&b&c <=> (a&b)&c <=> a&(b&c)
交換律 a&b b&a
3、左移和右移注意點
·左移運算子<< 將運算子的二進位制位左移
·規則:高位丟棄,低位補0
·右移運算子》 把運算子的二進位制位右移
·規則:高位補符號位,低位丟棄
4、防錯準則:
·避免位運算子,邏輯運算子和數**算符同時出現在乙個表示式中
·當位運算子,邏輯運算子和數**算符需要同時參與運算時,盡量使用括號()來表達計算次序
5、左移n位相當於乘以2的n次方,但效率比數**算符高
右移n位相當於除以2的n次方,但效率比數**算符高
6、交換兩個數的三種方法
任意型別都可以
#define swap1(a,b) \
第二種方法如果a很大或者b很大,就會溢位
#define swap2(a,b) \
使用領域int型
#define swap3(a,b) \
7、面試題詳解:
有乙個數列,其中的自然數都是以偶數次數的形式出現,只有乙個自然數出現的次數是奇數,
編寫程式找出這個數
#include
#define dim(a) (sizeof(a)/sizeof(*a))
int main()
;int find = 0;
int i = 0;
for (i = 0; i < dim(a); i++)
printf ("find = %d\n", find);
return 0;
}
位運算子分析
注意按位運算子 和 與邏輯運算子 和 完全是兩碼事,別混淆了。結合律 a b c a b c a b c 交換律 a b b a 左移和右移 左移運算子 右移運算子 是雙目運算子。其功能把 左邊的運算數的各二進位全部右移若干位,右邊的數指定移動的位數。但注意 對於有符號數,當為正數時,最高位補0 而...
16 位運算子分析
注 部落格中內容主要來自 狄泰軟體學院 部落格僅當私人筆記使用。測試環境 ubuntu 10.10 gcc版本 4.4.5 一 位運算子分析 1 c語言中的位運算子 位運算子直接對bit位進行操作,其效率最高。2 左移和右移注意點 左運算元必須為整數型別 char 和 short被隱式轉換為int後...
位運算(1) 初識位運算
前段時間數電課學了些進製轉換,還有與或非等邏輯運算,如今再來看看位運算,倒輕鬆了不少。很早就想寫些非總結性部落格了,奈何還是太懶。也也不知怎的突然又來了興致,趕忙寫下這篇部落格。廢話不多說,今天準備總結總結關於位運算的知識。程式中的所有數在計算機記憶體中都是以二進位制的形式儲存的,即0 1兩種狀態,...