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
          其結果與 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
          其結果與 -5*2*2*2 完全相同。

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

          5<<3=40
          0000 0000 0000 0000 0000 0000 0000 0101
          0000 0000 0000 0000 0000 0000 0010 1000
          其結果與 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 位,其結果為 -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


          位邏輯運算符

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

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

          例子:
          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 苦笑枯 閱讀(3056) 評論(1)  編輯  收藏 所屬分類: Java

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

          <2007年6月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          常用鏈接

          留言簿(2)

          隨筆分類(56)

          隨筆檔案(56)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 新密市| 丹寨县| 富顺县| 大埔县| 吉安县| 太仓市| 长子县| 平远县| 澜沧| 佛坪县| 北宁市| 和静县| 高州市| 高雄县| 靖江市| 云阳县| 买车| 高阳县| 黔南| 布尔津县| 珲春市| 镇原县| 平凉市| 西安市| 溧阳市| 二手房| 岳阳县| 南城县| 交城县| 西昌市| 邹平县| 房山区| 沾益县| 瓮安县| 新竹县| 南平市| 阿拉尔市| 商丘市| 芷江| 凤阳县| 左贡县|