C語言 位運算子

2021-10-10 08:09:25 字數 1173 閱讀 8385

位操作符,主要包括

與,或 符&,|

取反符 ~

移位符 <<,>>

異或符 ^

開始前先看一段實現二進位制輸出的**,方便觀察位操作

參考鏈結知乎作者——碼農愛學習

void

printf_bin

(int num)

printf

(" ");

//每8位加個空格,方便檢視

}printf

("\r\n");

}

與0清0,與1不變

功能1:提取位資料

功能2:清除(0)

e.g.

#include

intmain()

或1置1,或0不變

功能: 置1

示例: 將int的變數a的第22-23位置1,其他位不變

int a ; 

a = a |

0xc00000

取反1變為0,取反0變為1

示例: 將int的變數a的第28位清0,其他位不變

a = a &~(

0x10000000

);

移位運算子實現的是左移/右移

左移時最左位(包括符號位)移出記憶體空間,最右位補零

右移時最右位移除,最左位補零

char c =

0x80

=0b 1000

0000

a = a &~(

0x1<<28)

a &=~(

0x1<<28)

;a = a +3;

a +=3;

a = a &~(

0x3<<26)

;

迴圈左右移則最左位與最右位相連(位操作實現不了)

異或1取反,異或0不變

示例:將a的第28位異或1,即將a的第28位取反

與 取反 ~ 的區別 在於 異或 ^ 的直接操作物件為 a中的第28位

a = a ^

(0x1

<<28)

;

補充

原碼、反碼、補碼

C語言位運算子

一.c語言位運算子簡介 c語言的位運算子有六種,分別是 右移運算子 左移運算子 按位與運算子 按位或運算子 按位異或運算子 按位取反運算子 這些運算子都是對於基本資料型別的二進位制位進行操作的,這裡我們只討論整型資料型別的位運算 二.各個運算子的具體使用 右移運算子 將整數的二進位制形式整體向右移動...

C語言 位運算子

位運算是指按二進位制進行的運算。在系統軟體中,常常需要處理二進位制位的問題。c語言提供了6個位操作運算子。這些運算子只能用於整型運算元,即只能用於帶符號或無符號的char,short,int與long型別。c語言提供的位運算子列表 1 按位與 運算子 按位與是指 參加運算的兩個資料,按二進位制位進行...

C語言位運算子

語言位運算子 與 或 異或 取反 左移和右移 位運算是指按二進位制進行的運算。在系統軟體中,常常需要處理二進位制位的問題。c語言提供了6個位操作運算子。這些運算子只能用於整型運算元,即只能用於帶符號或無符號的char,short,int與long型別。c語言提供的位運算子列表 運算子 含義 描述 按...