青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

Java中的位操作,位判斷

Java中的位操作指定包括:
~                   
按位非(NOT
&                  
按位與(AND
|                   
按位或(OR
^                  
按位異或(XOR
>>                
右移
>>>              
無符號右移
<<                
左移
前面幾個都非常簡單,主要是移位操作比較容易出錯.

首先要搞清楚參與運算的數的位數,如int的是32位。long的是64位。
int i = 1;
i
的二進制原碼表示為:
00000000000000000000000000000001

long l = 1;
l
的二進制原碼表示為:
0000000000000000000000000000000000000000000000000000000000000001


二、
正數沒有反碼、補碼,也可以說正數的反碼、補碼跟原碼一樣。
負數的反碼為原碼逐位取反,
int i = -1;
10000000000000000000000000000001,
最高位是符號位。正數為0,負數為1
逐位取反后:
01111111111111111111111111111110
即反碼。
反碼加1
01111111111111111111111111111111
即補碼。
負數都是用補碼參與運算的。得到的也是補碼,需要減1取反獲得原碼。

三、常用的位運算符--0在位運算中是比較特殊的。
異或。      相同為0,相異為1   任何數與0異或都等于原值。 
與。        11 00;  任何數與0異或都等于0。  
或。        11 00。  任何數與0或都等于原值。
<<
左移。      0
>>
右移。      符號位是00,是11
>>>
無符號右移。補0
          逐位取反

四、負數參與的運算,得到的是補碼,需要將補碼先減1,然后逐位取反,得到原碼。即為運算結果。
0
例外,如果得到的是0,則不需減1和取反。
另外,兩個正數運算后得到的就是原碼,不需減1和取反。


舉例:
1
-1,
-1
10000000000000000000000000000001--
原碼
01111111111111111111111111111110--
反碼
01111111111111111111111111111111--
補碼
1
00000000000000000000000000000001--
原碼

1^-1等于
01111111111111111111111111111111^
00000000000000000000000000000001=
01111111111111111111111111111110--
補碼
01111111111111111111111111111101--
反碼
10000000000000000000000000000010--
原碼==-2
1^-1=-2

舉例:
1^-2
-2
10000000000000000000000000000010--
原碼
01111111111111111111111111111101--
反碼
01111111111111111111111111111110--
補碼
1
00000000000000000000000000000001--
原碼
1^-2等于
01111111111111111111111111111110^
00000000000000000000000000000001=
01111111111111111111111111111111--
補碼
01111111111111111111111111111110--
反碼
10000000000000000000000000000001--
原碼==-1


1.<<
邏輯左移,右邊補0,符號位和其他位一樣.
正數:
x<<1
一般相當于2x,但是可能溢出.
溢出范圍: 230~(231-1) 二進制表示 010000...00001111....1111,移位后最高為變為1,變成負數了.
負數:
x<<1
一般也相當于2x,也有可能溢出.所以, x*32可以寫成x<<5
溢出范圍: -231~-(230+1)二進制表示10000...000101111...1111,移位后最高為變成0,變成正數了.

2.>>
算術右移,和上面的不對應,為正數時左邊補0,為負數時左邊補1.
x>>1,
相當于x/2,余數被舍棄,因為這個是縮小,所以不會溢出.
不過有一點要注意: -1右移多少位都是-1.
另外舍棄的余數是正的, 3>>1=1 舍棄的余數是1.
-3>>1=-2
舍棄的余數也是1,而不是-1.
對于正數 x>>1x/2相等
對于負數 x>>1x/2不一定相等.

3.>>>
邏輯右移,這個才是和<<對應的
這個把符號位一起移動,左邊補0
對于正數,>>>>>是一樣的
對于負數,右移之后就變成正數了.

可以使用Integer.toBinaryString(int i)來看01比特,更加直觀.


考慮下面的代碼: 
for (val = 0; val < 100000; val +=5) { alterX = val * 8; myResult = val * 2; }


用移位操作替代乘法操作可以極大地提高性能。下面是修改后的代碼: 

for (val = 0; val < 100000; val += 5) { alterX = val << 3; myResult = val << 1; }

  修改后的代碼不再做乘以8的操作,而是改用等價的左移3位操作,每左移1位相當于乘以2。相應地,右移1位操作相當于除以2。值得一提的是,雖然移位操作速度快,但可能使代碼比較難于理解,所以最好加上一些注釋。

posted on 2009-08-03 19:12 肥仔 閱讀(615) 評論(0)  編輯 收藏 引用 所屬分類: Web-后臺

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            蜜臀久久久99精品久久久久久| 久久三级视频| 国产欧美日韩在线视频| 久久gogo国模裸体人体| 久久精品99| 亚洲人成在线观看一区二区| 亚洲欧洲一级| 欧美电影免费观看大全| 亚洲午夜激情| 欧美一区二区三区播放老司机| 一区二区三区我不卡| 亚洲国产精品一区二区三区| 欧美视频一区| 久久久久久一区二区| 蜜桃av一区二区三区| 亚洲午夜久久久| 欧美一级夜夜爽| 亚洲人成人一区二区三区| 99视频超级精品| 国产一区二区日韩精品欧美精品| 欧美二区在线看| 国产精品啊啊啊| 六十路精品视频| 欧美日韩亚洲网| 久久网站免费| 欧美日韩国产色站一区二区三区| 欧美淫片网站| 欧美国产日韩二区| 欧美制服丝袜第一页| 久久婷婷国产麻豆91天堂| 一区二区三区视频免费在线观看 | 国产日韩精品综合网站| 欧美freesex8一10精品| 欧美四级在线观看| 老牛影视一区二区三区| 欧美日韩亚洲综合一区| 久久影视精品| 欧美系列精品| 欧美成人小视频| 国产精品免费aⅴ片在线观看| 免费观看欧美在线视频的网站| 欧美日韩一区二区三区免费| 国产精品午夜春色av| 亚洲美女毛片| 欧美中文字幕| 亚洲一区高清| 欧美11—12娇小xxxx| 欧美在线观看视频一区二区| 欧美精品123区| 久久久亚洲综合| 国产精品99一区二区| 欧美大片91| 国产原创一区二区| 一区二区成人精品 | 欧美—级a级欧美特级ar全黄| 欧美一区二区视频在线观看| 欧美激情一区二区三区在线视频观看| 久久精品国产96久久久香蕉| 欧美日韩国产色视频| 欧美成人嫩草网站| 国产日韩亚洲欧美精品| 日韩午夜激情av| 最新亚洲视频| 欧美在线free| 性欧美精品高清| 欧美日韩久久精品| 亚洲国产精品va| 一区二区三区自拍| 午夜激情综合网| 99亚洲精品| 欧美69wwwcom| 免费不卡在线视频| 国产一区二区三区直播精品电影| 在线视频欧美精品| 一卡二卡3卡四卡高清精品视频| 老司机久久99久久精品播放免费 | 亚洲欧洲精品一区二区| 欧美在线视频免费| 亚洲欧美视频| 欧美日韩一区二区精品| 91久久在线观看| 最近看过的日韩成人| 久久精品中文字幕免费mv| 久久av老司机精品网站导航| 国产精品久久久久久久久久免费看 | 国内在线观看一区二区三区| 亚洲一区在线观看视频| 亚洲一区二区日本| 欧美精品久久久久久久免费观看| 欧美国产精品v| 亚洲第一搞黄网站| 久久一二三国产| 久久视频国产精品免费视频在线| 欧美不卡视频一区| 国产精品综合不卡av| 亚洲午夜精品一区二区三区他趣| 亚洲网友自拍| 欧美色大人视频| 日韩网站在线看片你懂的| 一区二区免费在线播放| 欧美国产亚洲视频| 亚洲黄色免费电影| 亚洲国产网站| 欧美成人69| 亚洲娇小video精品| 日韩亚洲欧美综合| 欧美日韩国产首页在线观看| 亚洲精品乱码久久久久久蜜桃91| 99国产精品久久久久久久成人热| 欧美精品日韩精品| 亚洲老板91色精品久久| 亚洲视频中文| 国产精品久久久久高潮| 亚洲一区二区三区精品视频| 欧美诱惑福利视频| 国产私拍一区| 久久久人成影片一区二区三区观看 | 亚洲免费视频中文字幕| 国产精品老牛| 欧美一区二区福利在线| 久久婷婷蜜乳一本欲蜜臀| 亚洲成在线观看| 欧美国产三区| 一片黄亚洲嫩模| 欧美一区二区成人| 国产午夜精品久久久| 久久精品一区二区三区中文字幕| 噜噜噜躁狠狠躁狠狠精品视频 | 久久激情视频| 一区二区视频欧美| 欧美大香线蕉线伊人久久国产精品| 亚洲人体1000| 亚洲欧美成人网| 国模套图日韩精品一区二区| 另类尿喷潮videofree| 亚洲精品1区2区| 亚洲欧美在线免费观看| 国产亚洲一区精品| 蜜桃av久久久亚洲精品| 亚洲精品少妇| 欧美在线免费播放| 在线观看不卡av| 欧美日韩成人在线| 午夜精品久久久久久久99樱桃| 美女成人午夜| 亚洲少妇诱惑| 国内精品免费午夜毛片| 欧美成人一区二区三区片免费 | 亚洲精品影视在线观看| 欧美性猛交xxxx乱大交退制版| 午夜日韩福利| 亚洲国产高清在线观看视频| 亚洲一区免费看| 精品91在线| 欧美日韩一区二区在线视频| 欧美一区二区三区久久精品茉莉花| 国产欧美在线视频| 亚洲茄子视频| 久久精品国产久精国产思思| 亚洲欧洲日产国码二区| 国产精品视频| 久久一区二区精品| 亚洲一区二区成人| 欧美高清你懂得| 午夜视频在线观看一区| 亚洲国产精品综合| 国产精品久久久久久妇女6080 | 欧美连裤袜在线视频| 欧美一级大片在线免费观看| 亚洲国产午夜| 久久久久国色av免费看影院| 99精品视频免费| 国产亚洲欧美激情| 欧美日韩亚洲一区三区| 久久国产精品亚洲va麻豆| 亚洲精选中文字幕| 狂野欧美激情性xxxx| 亚洲免费人成在线视频观看| 亚洲国产一区二区视频| 国产精品嫩草影院av蜜臀| 老司机午夜精品视频在线观看| 亚洲女同同性videoxma| 亚洲日本激情| 免费成人网www| 性高湖久久久久久久久| 亚洲免费成人| 在线日本成人| 国产精品欧美日韩久久| 欧美日本免费| 老司机aⅴ在线精品导航| 午夜精品久久久久久久久久久久| 亚洲人成人一区二区在线观看| 久久综合狠狠综合久久激情| 午夜视频一区二区| 中文网丁香综合网| 亚洲激情午夜| 激情综合久久| 国产欧美在线观看| 国产精品久久久久av免费| 欧美人与禽猛交乱配|