1. 程式人生 > >一招教你學會C語言中位運算

一招教你學會C語言中位運算

程式中的所有數在計算機記憶體中都是以二進位制的形式儲存的。位運算說穿了,就是直接對整數在記憶體中的二進位制位進行操作。注意,位運算只針對於整數進行操作。

運算子號

運算規則

1、&與運算:對應兩個二進位均為1時,結果位才為1,否則為0。(有假為假==0) 

2、|或運算:對應的兩個二進位有一個為1時,結果位就為1,否則為0。(有真為真==1) 

3、^ 異或運算:對應的二進位不同時為1,否則為0。(不同為真==1,相同為假==0) 

注意:(1)相同整數相^的結果是0.

       (2)一個數^另一數兩次結果不變

       (3)整數相^跟順序無關 

4、~ 取反運算:對整數的各二進位進行取反,包括符號位(0變1,1變0,真假互換) 

5、<< 左移:把整數的各二進位全部左移n位,高位丟棄(包括符號位),低位補0。 

左移n位其實就是乘以2的n次方(但移動後符號位變化除外,符號位改變則正負改變)  

6、>> 右移:把整數的各二進位全部右移n位,符號位不變。高位的空缺是正數補0; 

是負數高位是補0或是補1 取決於編譯系統的規定;右移n位其實就是除以2的n次方

小編給大家推薦一個學習氛圍超好的地方,C/C++交流企鵝裙:341636727!適合在校大學生,小白,想
轉行,想通過這個找工作的加入。裙裡有大量學習資料,有大神解答交流問題,每晚都有免費的直播課


 

運算子優先順序

C語言中位運算子之間,按優先順序順序排列為:~、<<、>>、&、^、|、&=、^=、|=、<<=、>>=。

位運算作用

1、很多高階的動態規劃題目或者一些基礎的運算往往需要較高的執行效率和較低的空間需求,或者需要表示一些狀態集合,而位運算剛好能滿足這一切。

2、恰當的位運算使用也能使程式變得更加簡潔和優美。

位運算簡單應用

【位運算&應用例子】

【位運算|應用例子】

【位運算^應用例子】

【位運算~應用例子】