關於C語言的位運算符

  • 2020 年 5 月 14 日
  • 筆記

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

‘&’ 運算符

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

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

‘|’運算符

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

‘|’運算符經常用於設置多個屬性
列如 createwindow 中 經常用到

‘^’運算符

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

‘^’運算符可以用來判斷兩個數是否相等

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

‘~’運算符

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

‘~’運算符可以用與 求負數

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

‘>>’運算符

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


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