电竞比分网-中国电竞赛事及体育赛事平台

分享

Java 按位異或運算符一點小記

 moonboat 2011-01-29



按位異或運算符
兩個操作數(shù)中,如果兩個相應(yīng)位相同,則結(jié)果為0,否則為1
即:
    0^0=0, 1^0=1, 0^1=1, 1^1=0
例如:
    00101010^00010111=00111101

1)如果需使用一個整數(shù)的某些特定的位翻轉(zhuǎn),可使用另一個
相應(yīng)位為1的操作數(shù)與原來的整數(shù)進行按位異或操作實現(xiàn)。
下面的例子對整數(shù)變量 ii的第四位翻轉(zhuǎn)
int revertFouth=ii^8;
其余位則沒有變化

2)通過按位異或運算可以實現(xiàn)兩個值的交換。而不使用臨
時變量。例如交換兩個整數(shù)a,b的值可通過下列語句實現(xiàn):

int a=15,b=24;
//a的最右邊8位為00001111,b的最右邊8位為00011000
//a和b其余位為0,下同
a=a^b; //a的最右邊8位為00010111,a=23
b=b^a; //b的最右邊8位為00001111,b=15
a=a^b; //a的最右邊8位為00011000,a=24

*位邏輯運算表達式返回兩個操作數(shù)中數(shù)據(jù)長度較長的數(shù)據(jù)
類型
其中較小的左側(cè)將被填滿,若為整數(shù),則填滿0,
若為負(fù)數(shù),則左側(cè)填滿1

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多