posts - 56,  comments - 12,  trackbacks - 0

          移位運算符

              包括:
              “>> 右移”;“<< 左移”;“>>> 無符號右移”

          例子:
          -5>>3=-1
          1111 1111 1111 1111 1111 1111 1111 1011
          1111 1111 1111 1111 1111 1111 1111 1111
          其結(jié)果與 Math.floor((double)-5/(2*2*2)) 完全相同。

          -5<<3=-40
          1111 1111 1111 1111 1111 1111 1111 1011
          1111 1111 1111 1111 1111 1111 1101 1000
          其結(jié)果與 -5*2*2*2 完全相同。

          5>>3=0
          0000 0000 0000 0000 0000 0000 0000 0101
          0000 0000 0000 0000 0000 0000 0000 0000
          其結(jié)果與 5/(2*2*2) 完全相同。

          5<<3=40
          0000 0000 0000 0000 0000 0000 0000 0101
          0000 0000 0000 0000 0000 0000 0010 1000
          其結(jié)果與 5*2*2*2 完全相同。

          -5>>>3=536870911     
          1111 1111 1111 1111 1111 1111 1111 1011
          0001 1111 1111 1111 1111 1111 1111 1111

          無論正數(shù)、負數(shù),它們的右移、左移、無符號右移 32 位都是其本身,比如 -5<<32=-5、-5>>32=-5、-5>>>32=-5。
          一個有趣的現(xiàn)象是,把 1 左移 31 位再右移 31 位,其結(jié)果為 -1。
          0000 0000 0000 0000 0000 0000 0000 0001
          1000 0000 0000 0000 0000 0000 0000 0000
          1111 1111 1111 1111 1111 1111 1111 1111


          位邏輯運算符

              包括:
              & 與;| 或;~ 非(也叫做求反);^ 異或

              “& 與”、“| 或”、“~ 非”是基本邏輯運算,由此可以演變出“與非”、“或非”、“與或非”復(fù)合邏輯運算。“^ 異或”是一種特殊的邏輯運算,對它求反可以得到“同或”,所以“同或”邏輯也叫“異或非”邏輯。

          例子:
          5&3=1
          0000 0000 0000 0000 0000 0000 0000 0101
          0000 0000 0000 0000 0000 0000 0000 0011
          0000 0000 0000 0000 0000 0000 0000 0001

          -5&3=1
          1111 1111 1111 1111 1111 1111 1111 1011
          0000 0000 0000 0000 0000 0000 0000 0011
          0000 0000 0000 0000 0000 0000 0000 0011

          5|3=7
          0000 0000 0000 0000 0000 0000 0000 0101
          0000 0000 0000 0000 0000 0000 0000 0011
          0000 0000 0000 0000 0000 0000 0000 0111

          -5|3=-5
          1111 1111 1111 1111 1111 1111 1111 1011
          0000 0000 0000 0000 0000 0000 0000 0011
          1111 1111 1111 1111 1111 1111 1111 1011

          ~5=-6
          0000 0000 0000 0000 0000 0000 0000 0101
          1111 1111 1111 1111 1111 1111 1111 1010

          ~-5=4
          1111 1111 1111 1111 1111 1111 1111 1011
          0000 0000 0000 0000 0000 0000 0000 0100

          5^3=6
          0000 0000 0000 0000 0000 0000 0000 0101
          0000 0000 0000 0000 0000 0000 0000 0011
          0000 0000 0000 0000 0000 0000 0000 0110

          -5^3=-8
          1111 1111 1111 1111 1111 1111 1111 1011
          0000 0000 0000 0000 0000 0000 0000 0011
          1111 1111 1111 1111 1111 1111 1111 1000
          posted on 2007-06-16 18:13 苦笑枯 閱讀(3050) 評論(1)  編輯  收藏 所屬分類: Java

          FeedBack:
          # re: Java 位運算[未登錄]
          2009-05-14 16:45 | lepoke
          學到了。呵呵。。。  回復(fù)  更多評論
            
          收藏來自互聯(lián)網(wǎng),僅供學習。若有侵權(quán),請與我聯(lián)系!

          <2009年5月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(2)

          隨筆分類(56)

          隨筆檔案(56)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 屏东市| 新营市| 汝阳县| 黄陵县| 黄大仙区| 北海市| 宁津县| 彭水| 南昌市| 揭东县| 常宁市| 巴塘县| 华坪县| 龙里县| 舟曲县| 南江县| 阿拉善盟| 桃江县| 霞浦县| 苗栗市| 大埔区| 南漳县| 河曲县| 荥经县| 黔西| 富顺县| 兰西县| 呼图壁县| 桃源县| 和政县| 闽清县| 凤山县| 永济市| 临清市| 美姑县| 得荣县| 饶平县| 绵阳市| 沾益县| 江达县| 和平县|