關於C語言的位運算子

starburststream發表於2020-05-14

早期cpu架構在執行位運算時 略微領先 + - 運算 大幅領先 * / % 運算

'&' 運算子

總結 兩個二進位制中對應的位置都為 1 結果的對應二進位制為 1

'&'運算子可以用到奇偶判斷中(二進位制最低位為1 則一定是奇數 為0 一定是偶數)

'|'運算子

總結 兩個二進位制中對應的位置只要有一個1 結果的對應二進位制為 1

'|'運算子經常用於設定多個屬性
列如 createwindow 中 經常用到

'^'運算子

總結 二進位制對應位置不一樣 結果對應位置的二進位制位1 反之為0

'^'運算子可以用來判斷兩個數是否相等

兩個數一樣進行'^'運算 一樣就會返回0

'~'運算子

總結 對應的位置 0變1 1變0 結果為負的了(這是計算機表示負數的一種方法 簡單來說就是 數值最前面有個符號位 '~'運算子取負後 把數值前面的符號位改了 就變成負的了)

'~'運算子可以用與 求負數

也可以用來求int short long的最大最小值

'>>'運算子

把二進位制向 左,右 移動 x位(x可以為任何數) (但是大於 資料型別大小*8 位沒什麼意義)


一般可以用來求二進位制的冪(要是計算機自帶3進位制可以來求三進位制的冪)

相關文章