C語言程式設計 位運算子(異或運算子)

2021-08-27 05:32:45 字數 1147 閱讀 7952

下面顯示了 c 語言支援的位運算子。假設變數 a 的值為 60,變數 b 的值為 13,則:

(1)&按位與運算子,按二進位制位「與」運算。運算規則:

0&0=0;

0&1=0;

1&0=0;

1&1=1;

eg:(a & b) 將得到 12,即為 0000 1100

(2)| 按位或運算子,按二進位制位進行」或」運算。運算規則:

0|0=0;

0|1=1;

1|0=1;

1|1=1;

eg:(a | b) 將得到 61,即為 0011 1101

(3)^異或運算子,按二進位制位進行」異或」運算。運算規則:

0^0=0;

0^1=1;

1^0=1;

1^1=0;

eg:(a ^ b) 將得到 49,即為 0011 0001

(4)取反運算子,按二進位制位進行」取反」運算。運算規則:

~1=0;

~0=1;

eg:(~a ) 將得到 -61,即為 1100 0011,乙個有符號二進位制數的補碼形式。

(5)<< 二進位制左移運算子。將乙個運算物件的各二進位制位全部左移若干位(左邊的二進位制位丟棄,右邊補0)。

eg:a << 2 將得到 240,即為 1111 0000

(6)>> 二進位制右移運算子。將乙個數的各二進位制位全部右移若干位,正數左補0,負數左補1,右邊丟棄。

eg:a >> 2 將得到 15,即為 0000 1111

例題1:

#include 

main()

當上面的**被編譯和執行時,它會產生下列結果:

line 1 - c 的值是 12

line 2 - c 的值是 61

line 3 - c 的值是 49

line 4 - c 的值是 -61

line 5 - c 的值是 240

line 6 - c 的值是 15

例題二:(計算機二級題目)

s=32;

s^32;

printf(「%d」,s);

結果為:0

解釋:異或運算只有在比較的兩個位不同的時候才為1,否則為0。

C語言 位異或運算子

c語言 位異或運算子 位運算子家族中,最常用的,某過於異或運算子。異或運算子是指 參與運算的兩個值,如果兩個相應位相同,則結果為0,否則為1。即 0 0 0,1 0 1,0 1 1,1 1 0 例如 10100001 00010001 10110000 0 0 0,0 1 1 可理解為 0異或任何數...

C 位運算子詳解 異或運算子和移位運算子

什麼是位運算 位運算子按二進位制進行運算,這些運算子只能用於整數型別的操作。如 char,short,int,longbqclwf 通過位運算子來獲取高位值和低位值 int a 0x1234 int high,low high a 8 0x00ff low a 0x00ff 左移運算子和www.cp...

異或運算子和位運算子詳解

一.異或運算子 1.異或運算子是用符號 表示的,其運算規律是 轉換成二進位制的形式來對比每一位數,相同則結果為0,不同則結果為1。分析 a 的值是15,轉換成二進位制為 1111,而b 的值是2,轉換成二進位制為 0010,根據異或的運算規律,可以得出其結果為 1101 即最終 a b的值為13 二...