dream.in.java

          能以不變應萬變是聰明人做事的準則。萬事從小事做起,積累小成功,問鼎大成功,是成功者的秘訣。

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

          [Java]按位異或運算符一點小記
          [ 2007-4-18 21:45:00 | By: 卡拉阿風 ]
           
          按位異或運算符
          兩個操作數(shù)中,如果兩個相應位相同,則結(jié)果為0,否則為1
          即:
              0^0=0, 1^0=1, 0^1=1, 1^1=0
          例如:
              00101010^00010111=00111101

          1)如果需使用一個整數(shù)的某些特定的位翻轉(zhuǎn),可使用另一個
          相應位為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,
          若為負數(shù),則左側(cè)填滿1
           

          posted on 2009-03-25 21:27 YXY 閱讀(753) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 潮安县| 台中市| 伊金霍洛旗| 长白| 嘉峪关市| 沁阳市| 正阳县| 崇左市| 泌阳县| 临高县| 新安县| 枝江市| 铜川市| 新平| 子洲县| 鄂伦春自治旗| 安多县| 中山市| 安阳县| 湛江市| 交口县| 库车县| 长沙县| 二连浩特市| 多伦县| 西充县| 抚远县| 延边| 胶南市| 长武县| 潜山县| 旺苍县| 大化| 灵丘县| 田东县| 定安县| 安康市| 南木林县| 石楼县| 出国| 大连市|