移位( , ),按位與 ,異或 運算子的應用

2021-10-10 06:16:15 字數 691 閱讀 3109

1.統計二進位制中1的個數

#includeint countonebit(int num) 

} return count;

}int main()

2.獲取乙個整數二進位制序列中所有的偶數字和奇數字,分別列印出二進位制序列

#includeint printnum(int num) 

printf("\n");

//i初值為30,取num第二個位元位

//i=0:1不左移,取num最後乙個位元位

printf("偶序列:");

for (i = 30;i >= 0;i -= 2)

4.程式設計實現:兩個int(32位)整數m和n的二進位制表達中,有多少個位(bit)不同?

輸入例子 :

1999 2299

輸出例子 : 7

注意:此處1999和2299為十進位制數(不要和十六進製制混淆)

二進位制表示式:1999:011111001111

2299:100011111011

共7個為不同

#includeint main() 

} printf("%d\n", count);

system("pause");

return 0;

}

按位異或運算子

參與運算的兩個值,如果兩個相應位相同,則結果為0,否則為1。即 0 0 0,1 0 1,0 1 1,1 1 0 例如 10100001 00010001 10110000 0 0 0,0 1 1 0異或任何數 任何數 1 0 1,1 1 0 1異或任何數 任何數取反 任何數異或自己 把自己置0 1 ...

按位異或運算子

2 實現兩個值的交換,而不必使用臨時變數。例如交換兩個整數a 10100001,b 00000110的值,可通過下列語句實現 a a b a 10100111 b b a b 10100001 a a b a 00000110 3 在組合語言中經常用於將變數置零 xor a,a 1 static i...

運算子(二)按位異或運算子與左,右移位運算子

規則 相同為0,不同為1。有時兩個資料在異或後得到的結果跟兩個資料的值不同,有時會跟兩個值中某乙個值相同。所以在用的時候應該考慮清楚。比如 0010 0001 0011 這個得到的結果是不同。0000 0011 0011這個得到的結果是相同的。很多成對出現數字儲存在磁碟檔案中,注意成對的數字不一定是...