Jason ---分享,共同進(jìn)步

          激情成就夢(mèng)想,努力創(chuàng)造未來(lái)
          隨筆 - 53, 文章 - 1, 評(píng)論 - 45, 引用 - 0
          數(shù)據(jù)加載中……

          java移位運(yùn)算符(轉(zhuǎn)載)

          a)“>>”運(yùn)算符

          “>>”運(yùn)算符作帶符號(hào)的位移處理,它作位移處理時(shí),會(huì)先將值向右移,并在高位填0,然后將位移后所空出的高位,全部改成原來(lái)的最高位的值(代表正負(fù)號(hào)的位)。也就是說(shuō)負(fù)的值位移后,仍然是負(fù)的值,比如:

          -10>>2 =-3

          -10= 1111 1111 1111 1111 1111 1111 1111 0110

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

          結(jié)果:1111 1111 1111 1111 1111 1111 1111 1101 (全部天上原本符號(hào)位的值:1)

          b)“>>>”運(yùn)算符

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

          -10>>>2=1073741821

          -10=1111 1111 1111 1111 1111 1111 1111 0110 (不管原來(lái)的“符號(hào)”位的值(一長(zhǎng)串1),空上的全部直接填0)

          0011 1111 1111 1111 1111 1111 1111 1101=1037341821

          c)“<<”運(yùn)算符

          “>>”運(yùn)算符的所作的也是無(wú)符號(hào)的位移處理,同樣地,它不會(huì)將所處理的值的最高位視為正負(fù)符號(hào),它作位移處理時(shí),會(huì)直接左移并在低位填入0。所以第二高位以下的位若移到了最高位,該值的正負(fù)可能會(huì)與原來(lái)的不同。

          -2147483647<<2=4

          -2147483647=1000 0000 0000 0000 0000 0000 0000 0001

           

          0000 0000 0000 0000 0000 0000 0000 0100=4

          d)“<<<”運(yùn)算符
          恩,當(dāng)然了,在java里不存在它。

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

          評(píng)論

          # re: java移位運(yùn)算符(轉(zhuǎn)載)  回復(fù)  更多評(píng)論   

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

          # re: java移位運(yùn)算符(轉(zhuǎn)載)  回復(fù)  更多評(píng)論   

          呵呵,-10=1111 1111 1111 1111 1111 1111 1111 0110 沒(méi)有錯(cuò),
          你的-10的值是不對(duì)的,二進(jìn)制求反的方法是:

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

          2008-08-15 09:11 | agun

          # re: java移位運(yùn)算符(轉(zhuǎn)載)  回復(fù)  更多評(píng)論   

          麻煩寫得認(rèn)真點(diǎn)
          2010-01-10 14:59 | 孫陳賢
          主站蜘蛛池模板: 岢岚县| 辽阳县| 宜丰县| 巫山县| 阿瓦提县| 康马县| 四平市| 红安县| 班玛县| 灵宝市| 屯留县| 宝丰县| 江门市| 射洪县| 嵩明县| 洛隆县| 黄梅县| 金门县| 阿尔山市| 彰武县| 麦盖提县| 绿春县| 漳州市| 迁西县| 滨州市| 高平市| 高唐县| 屯门区| 太仓市| 宁蒗| 东阳市| 都兰县| 昌黎县| 含山县| 揭东县| 咸丰县| 垣曲县| 桦甸市| 顺昌县| 平和县| 五河县|