C語言 位操作符

2021-09-27 13:28:35 字數 1457 閱讀 1445

1:按位與 &

2:按位或 |

3:按位異或 ^

注意:運算元必須是整數

1:按位與(按二進位制進行相與)

#define _crt_secure_no_warnings 1

#include

#include

intmain()

2 在32位補碼中是 00000000000000000000000000000010

3 在32位補碼中是 00000000000000000000000000000011

相與的結果是 00000000000000000000000000000010

所以結果是2

注意用補碼去與

例如 -1 和1相與

-1 :1111111111111111111111111111111

1:00000000000000000000000000000001

按位與的結果是1

按位或

#define _crt_secure_no_warnings 1

#include

#include

intmain()

同樣道理用補碼進行或運算

可得結果是 -1

按位異或

注意結果是

相同為0,相異為1;

-1 :1111111111111111111111111111111

1:00000000000000000000000000000001

1111111111111111111111111111110

得到結果是 -2

#define _crt_secure_no_warnings 1

#include

#include

intmain()

應用:不建立臨時變數,實現2個數的交換

#define _crt_secure_no_warnings 1

#include

#include

intmain()

規律:a^a = 0;

a^0 = a

異或的應用

給定一組數字找出出現1次的數字

1 2 3 4 5 4 3 2 1

如果遍歷查詢,就會出現每個元素都要遍歷一次,會導致效率極低。

演算法就是全部異或起來

看**說話`

#define _crt_secure_no_warnings 1

#include

#include

intmain()

結果為 5

c語言操作符 位操作符 移位操作符

1 按位操作符 1.1 按位 與 雙目運算子 僅當兩個運算元都為1時,結果為1,否則為0。參與運算的數以補碼方式出現。例 9 5 1 0000 1001 9的補碼 0000 0101 5的補碼 0000 0001 1的補碼 應用 a 通常將某些位清零或保留某些位。例如 將a的高八位清零,保留低八位,...

c語言 位操作符和邏輯操作符

按位與 按位或 按位異或 注 他們的運算元必須是整數。兩個整數字元位有假 0 就為假 0 只有全為真 1 就為真 1 舉個例子 老師叫兩個學生來辦公室,說張三與 李四過來,如果只乙個人過去就不滿足老師說的話 為假 必須兩個人都過去 為真 兩個整數字元位只要有真就為真,只有全為假 0 就為假 0 舉個...

c 位操作符

我們知道,任何資訊在計算機中都是以二進位制的形式儲存的。位操作符就是對資料按二進位制進行運算的操作符。c 語言中的位操作符有 與 或 異或 取補 左移 右移 其中,取補只有乙個運算元,而其它的位操作符都有兩個運算元。這些運算都不會產生溢位。位操作符的運算元為整型或者是可以轉換為整型的任何其它型別。與...