Jason ---分享,共同進步

          激情成就夢想,努力創造未來
          隨筆 - 53, 文章 - 1, 評論 - 45, 引用 - 0

          導航

          <2008年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(2)

          我參與的團隊

          隨筆分類

          隨筆檔案

          搜索

          •  

          積分與排名

          • 積分 - 75354
          • 排名 - 742

          最新評論

          閱讀排行榜

          評論排行榜

          java移位運算符(轉載)

          a)“>>”運算符

          “>>”運算符作帶符號的位移處理,它作位移處理時,會先將值向右移,并在高位填0,然后將位移后所空出的高位,全部改成原來的最高位的值(代表正負號的位)。也就是說負的值位移后,仍然是負的值,比如:

          -10>>2 =-3

          -10= 1111 1111 1111 1111 1111 1111 1111 0110

          右移2位:0011 1111 1111 1111 1111 1111 1111 1101

          結果:1111 1111 1111 1111 1111 1111 1111 1101 (全部天上原本符號位的值:1)

          b)“>>>”運算符

          “>>>”運算符所作的是無符號的位移處理,它不會將所處理的值的最高位視為正負符號,所以作位移處理時,會直接在空出的高位填入0。當我們要作位移的原始值并非代表數值時(例如:表示顏色圖素的值,最高位并非正負號),可能就會需要使用此種無符號的位移。比如:

          -10>>>2=1073741821

          -10=1111 1111 1111 1111 1111 1111 1111 0110 (不管原來的“符號”位的值(一長串1),空上的全部直接填0)

          0011 1111 1111 1111 1111 1111 1111 1101=1037341821

          c)“<<”運算符

          “>>”運算符的所作的也是無符號的位移處理,同樣地,它不會將所處理的值的最高位視為正負符號,它作位移處理時,會直接左移并在低位填入0。所以第二高位以下的位若移到了最高位,該值的正負可能會與原來的不同。

          -2147483647<<2=4

          -2147483647=1000 0000 0000 0000 0000 0000 0000 0001

           

          0000 0000 0000 0000 0000 0000 0000 0100=4

          d)“<<<”運算符
          恩,當然了,在java里不存在它。

          posted on 2008-03-18 09:51 agun 閱讀(3680) 評論(3)  編輯  收藏 所屬分類: java 基礎

          評論

          # re: java移位運算符(轉載)  回復  更多評論   

          -10= 1111 1111 1111 1111 1111 1111 1111 1010
          這樣才對吧!
          2008-08-14 16:51 | moe

          # re: java移位運算符(轉載)  回復  更多評論   

          呵呵,-10=1111 1111 1111 1111 1111 1111 1111 0110 沒有錯,
          你的-10的值是不對的,二進制求反的方法是:

          1、把補碼“取反”(把二進制數的各位“1”換“0”,“0”換“1”。比如“101010”取反后為“010101”)
          2、把取反后的二進制數“加1”.

          2008-08-15 09:11 | agun

          # re: java移位運算符(轉載)  回復  更多評論   

          麻煩寫得認真點
          2010-01-10 14:59 | 孫陳賢
          主站蜘蛛池模板: 江门市| 望江县| 台东市| 武陟县| 长治县| 中江县| 天气| 红桥区| 抚州市| 甘孜县| 鹿泉市| 阳谷县| 佛坪县| 花莲县| 集贤县| 云霄县| 政和县| 淮北市| 无为县| 申扎县| 新龙县| 方城县| 齐河县| 开化县| 临汾市| 宁陕县| 泰顺县| 朝阳县| 宽城| 寿宁县| 自治县| 泉州市| 财经| 诸城市| 津南区| 休宁县| 通州市| 泾阳县| 吉隆县| 西安市| 兴隆县|