C++按位異或運(yùn)算符的使用介紹
參與運(yùn)算的兩個(gè)值,如果兩個(gè)相應(yīng)位相同,則結(jié)果為0,否則為1。即:0^0=0, 1^0=1, 0^1=1, 1^1=0
例如:10100001^00010001=10110000
0^0=0,0^1=1 0異或任何數(shù)=任何數(shù)
1^0=1,1^1=0 1異或任何數(shù)-任何數(shù)取反
任何數(shù)異或自己=把自己置0
(1)按位異或可以用來使某些特定的位翻轉(zhuǎn),如對(duì)數(shù)10100001的第2位和第3位翻轉(zhuǎn),可以將數(shù)與00000110進(jìn)行按位異或運(yùn)算。
10100001^00000110=10100111 //1010 0001 ^ 0x06 = 1010 0001 ^ 6
(2)通過按位異或運(yùn)算,可以實(shí)現(xiàn)兩個(gè)值的交換,而不必使用臨時(shí)變量。例如交換兩個(gè)整數(shù)a,b的值,可通過下列語句實(shí)現(xiàn):
a=10100001,b=00000110
a=a^b; //a=10100111
b=b^a; //b=10100001
a=a^b; //a=00000110
(3)異或運(yùn)算符的特點(diǎn)是:數(shù)a兩次異或同一個(gè)數(shù)b(a=a^b^b)仍然為原值a.
相關(guān)文章
C語言中isalnum()函數(shù)和isalpha()函數(shù)的對(duì)比使用
這篇文章主要介紹了C語言中isalnum()函數(shù)和isalpha()函數(shù)的對(duì)比使用,都可以判斷是否為字母但isalnum的判斷還包括數(shù)字,需要的朋友可以參考下2015-08-08如何用c++表驅(qū)動(dòng)替換if/else和switch/case語句
本文將介紹使用表驅(qū)動(dòng)法,替換復(fù)雜的if/else和switch/case語句,想了解詳細(xì)內(nèi)容,請看下文2021-08-08C語言中隨機(jī)數(shù)rand()函數(shù)詳解
大家好,本篇文章主要講的是C語言中隨機(jī)數(shù)rand()函數(shù)詳解,感興趣的同學(xué)感快來看一看吧,對(duì)你有幫助的話記得收藏一下2022-02-02