位運算是指進行二進位制的運算。在系統軟體中,常需要處理二進位制位的問題。例如,將乙個儲存單元中的各二進位制位左移或右移一位,兩個數按位相加等。c語言提供位運算的功能。
運算子 含義
& 按位與
| 按位或
^ 按位異或
~ 取反
<< 左移
>> 右移
說明:位運算子中,除了 ~ 取反以外,均為二目(元)運算子,即要求兩側各有乙個運算量。
運算量只能是整型或字元型資料,不能是實型資料。
與運算子特點:
1、如果參加 與 運算的是負數,則以補碼形式表示為二進位制數,然後按位進行 與 運算。
2、清零。
3、取乙個數中的某些指定位。
4、保留某乙個數
或運算子特點
1、兩個相應的二進位制位中只要有乙個為1,該位的結果值為1。
2、或運算可以指定某些位的值為1. 異或
1、若參加運算的兩個二進位制位同號,則結果為零;異號則為1。
2、使特定位翻轉。
3、與0相異或,保留原值。
4、交換兩個值,不用臨時變數
比如 : a = 3,b = 4。交換a、b。
語句 : a = a ^b;b = b^a;a = a^b
取反運算子 :
: ~ 是乙個單目(元)運算子,用來對乙個二進位制數按位取反,即將0變一,將1變0.
左移運算子 << a = a << 2 將a左移兩位。
右移運算子 >>
位運算操作符
與運算,二元操作符,對兩個操作員的每個二進位制位進行與運算,運算規則為 1 1 1 1 0 0 0 1 0 0 0 0 異或運算,二元操作符,對兩個操作員的每個二進位制位進行異或運算,運算規則為 1 1 0 1 0 1 0 1 1 0 0 0 或運算,二元操作符,對兩個操作員的每個二進位制位或運算,...
位運算子 操作符
按位與 按位或 取反 按位異或 按位異或可以實現兩個變數值的交換,但是並不推薦。a b b a a b 都是雙目運算子,將二進位制向左移動指定位,高位丟棄,低位補0.當為負數時,根據編譯系統的規定補0,或者1.例 0x01 2 3 這裡要考慮運算子的優先順序。的優先順序大於 的優先順序,所以0x01...
c語言操作符 位操作符 移位操作符
1 按位操作符 1.1 按位 與 雙目運算子 僅當兩個運算元都為1時,結果為1,否則為0。參與運算的數以補碼方式出現。例 9 5 1 0000 1001 9的補碼 0000 0101 5的補碼 0000 0001 1的補碼 應用 a 通常將某些位清零或保留某些位。例如 將a的高八位清零,保留低八位,...