1. 程式人生 > >C語言學習——位操作符

C語言學習——位操作符

按位取反(~)

任何進位制的都轉換成二進位制,然後0變1,1變0
例如

printf(“%u”,(unsigned char)~181);

移位操作(>>,<<)

符號的方向說明二進位制移動的方向
例如 11>>2

這裡寫圖片描述

結果就是2

按位與(&)

例如 8&6
這裡寫圖片描述

規律:一假全假,全真才真
結果為0 0 0 0即為0

按位或(|)

例如 8|6
這裡寫圖片描述

規律:一真全真,全假才假
結果為 1 1 1 0 即14

按位異或(^)

例如 10^6
這裡寫圖片描述


規律:相同為0,不同為1
結果為 1 1 0 0

拓展

int a=1;
printf(“%d”,a<<2);

也就是左移兩位即乘4,比1*4的計算速度要快

注:使用位操作符一定要注意資料型別所佔的位,例如int佔了32位,如果取反的話,結果一般都比較奇怪。