實戰演練!C語言小白入門必須要掌握的位運算!
所謂位運算,就是對一個比特(Bit)位進行操作。在《二進位思想以及數據的存儲》一節中講到,比特(Bit)是一個電子元器件,8個比特構成一個位元組(Byte),它已經是粒度最小的可操作單元了。
C語言提供了六種位運算符:
按位與運算(&)
一個比特(Bit)位只有 0 和 1 兩個取值,只有參與
&
運算的兩個位都為 1 時,結果才為 1,否則為 0。例如
1&1
為 1,
0&0
為 0,
1&0
也為 0,這和邏輯運算符
&&
非常類似。
C語言中不能直接使用二進位,
&
兩邊的操作數可以是十進位、八進位、十六進位,它們在內存中最終都是以二進位形式存儲,
&
就是對這些內存中的二進位位進行運算。其他的位運算符也是相同的道理。
C語言位運算
有6種: &, | , ^(亦或), >(右移)。
注意:參與位運算的元素必須是int型或者char型,以補碼形式出現。小編推薦一個學C語言/C++的學習裙【 六二七,零一二,四六四 】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多乾貨和技術資料分享!
按位與&
&運算常應用於:
迅速清零
保留指定位
判斷奇偶性
a & 1 = 1;則a為奇數
b & 1 = 0;則a為偶數
按位或|
按位或(「|」)用途:設定數據的指定位
按位異或^
異或 就是位相同等於零,相異等於1
按位異或作用:
1.定位反轉
2.交換數值
//交換a和b的值
按位取反~
左移、右移
讓二進位左移N位,高位丟棄,低位補0,得到的 新值 = 原值*2^N,
作用:實現二倍乘除運算(右移幾位相當於除於二的幾次方。左移幾位,相當於乘上二的幾次方。)
問題:int是有符號類型,左移可能會把符號左移出去,發生溢出。
TAG:Java部落 |