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

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,移位后最高為變?yōu)?span lang="EN-US">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 肥仔 閱讀(609) 評論(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>
            国产亚洲欧美一区二区| 久久久久青草大香线综合精品| 午夜欧美大尺度福利影院在线看| 日韩午夜视频在线观看| av不卡在线观看| 日韩视频欧美视频| 一区二区欧美激情| 欧美一区二区三区精品| 久久精品中文字幕一区二区三区| 久久综合色一综合色88| 亚洲精品欧美激情| 亚洲综合色在线| 久久久夜夜夜| 欧美日韩免费观看一区二区三区 | 一色屋精品视频免费看| 亚洲欧洲一区二区三区久久| 中文欧美日韩| 裸体女人亚洲精品一区| 99亚洲精品| 久久在线视频在线| 国产精品久久午夜| 亚洲欧洲一区二区三区在线观看 | 国产人久久人人人人爽| 亚洲国产欧美不卡在线观看| 亚洲免费网站| 亚洲国产精品va在线看黑人 | 亚洲欧美一区二区视频| 久久综合精品国产一区二区三区| 亚洲精品国产精品乱码不99按摩| 亚洲欧美日韩国产一区二区| 欧美www在线| 国产人成精品一区二区三| 亚洲狼人精品一区二区三区| 欧美怡红院视频一区二区三区| 亚洲电影免费在线| 久久国产直播| 国产伦精品一区二区三区| 亚洲免费高清视频| 欧美高清视频一区二区| 欧美在线三区| 国产日韩精品入口| 亚洲欧洲av一区二区| 亚洲激情欧美| 欧美黄色视屏| 亚洲国产一区二区三区在线播| 久久狠狠婷婷| 午夜精品国产| 国产精品亚洲综合色区韩国| av不卡在线| 亚洲人成在线免费观看| 久久夜色精品一区| 一区二区三区在线视频免费观看| 亚洲女人av| 亚洲高清视频在线观看| 午夜老司机精品| 欧美婷婷久久| 亚洲一区影院| 夜夜嗨av一区二区三区中文字幕 | 亚洲欧美日韩一区二区三区在线观看 | 影音先锋日韩精品| 欧美在线日韩精品| 这里只有视频精品| 国产精品你懂的在线| 亚洲一区日本| 亚洲在线观看免费视频| 国产精品美女久久久免费| 香蕉乱码成人久久天堂爱免费 | 欧美午夜影院| 亚洲欧美日韩国产综合| 亚洲一区二区欧美日韩| 国产欧美日韩视频一区二区| 欧美一区二区三区久久精品茉莉花| 亚洲一级黄色| 韩国亚洲精品| 欧美搞黄网站| 欧美精品一区二区三区很污很色的| 日韩天堂在线观看| 亚洲午夜极品| 韩国av一区二区三区四区| 裸体女人亚洲精品一区| 欧美激情亚洲| 久久国产加勒比精品无码| 久久久久久久网| 99亚洲伊人久久精品影院红桃| 一本色道88久久加勒比精品 | 一区在线播放视频| 亚洲国产精品美女| 国产精品福利av| 美女黄毛**国产精品啪啪| 欧美激情久久久久| 欧美亚洲综合网| 久久综合中文字幕| 亚洲综合成人在线| 巨乳诱惑日韩免费av| 亚洲无毛电影| 欧美亚洲在线观看| 欧美成人dvd在线视频| 欧美日韩不卡在线| 久久精品国产99国产精品| 欧美成人首页| 久久精精品视频| 欧美欧美午夜aⅴ在线观看| 性欧美在线看片a免费观看| 快射av在线播放一区| 亚洲欧美亚洲| 欧美成人精品福利| 久久久久久久久久久成人| 欧美日本免费一区二区三区| 久久精品国产亚洲高清剧情介绍 | 麻豆久久精品| 亚洲欧美日韩国产一区| 欧美va亚洲va香蕉在线| 久久婷婷国产麻豆91天堂| 欧美亚日韩国产aⅴ精品中极品| 欧美高清不卡| 国内精品视频久久| 亚洲欧美日韩另类| 亚洲一区二区三区高清| 欧美成年人视频| 欧美成人精品在线视频| 国内成人在线| 欧美一区2区视频在线观看| 亚洲永久免费av| 欧美日本精品| 亚洲免费观看高清完整版在线观看熊| 在线看片成人| 久久综合色天天久久综合图片| 久久久亚洲国产美女国产盗摄| 国产精品视频一区二区高潮| 99国产成+人+综合+亚洲欧美| 亚洲日产国产精品| 牛牛影视久久网| 91久久在线观看| 夜夜嗨av一区二区三区网页| 欧美日本中文| 9色精品在线| 亚洲综合成人婷婷小说| 国产精品久久久久久影院8一贰佰| 夜夜嗨av一区二区三区免费区| 亚洲视频福利| 国产精品一区二区三区久久久| 亚洲主播在线播放| 久久精品综合| 亚洲激情视频在线| 欧美全黄视频| 亚洲影音先锋| 卡一卡二国产精品| 亚洲黄色小视频| 欧美日韩国产免费| 亚洲图片在线观看| 久久在线视频| 日韩系列在线| 国产精品影音先锋| 久久久综合免费视频| 亚洲国产欧美精品| 亚洲欧美日韩一区二区在线 | 在线一区观看| 久久久久免费观看| 亚洲国产精品一区在线观看不卡 | 欧美一区亚洲二区| 欧美成人免费小视频| 日韩视频在线一区| 国产精品一区2区| 久久中文在线| 宅男精品视频| 老司机午夜免费精品视频| 亚洲精品欧洲| 国产精品男女猛烈高潮激情| 久久免费99精品久久久久久| 亚洲国产日韩在线一区模特| 午夜精品久久久久影视| 亚洲高清免费在线| 国产精品久久久久久模特| 久久香蕉国产线看观看av| 99精品热6080yy久久| 免费不卡欧美自拍视频| 午夜国产精品视频| 亚洲日本va在线观看| 国产精品一区二区a| 欧美激情一区二区三区成人| 午夜欧美视频| 9人人澡人人爽人人精品| 欧美不卡福利| 久久高清一区| 午夜精品久久久久久久99热浪潮| 亚洲国产精品va在线看黑人动漫| 国产精品久久久99| 欧美日本亚洲视频| 免费一区二区三区| 久久成人免费日本黄色| 一区二区三区久久网| 亚洲激情小视频| 亚洲大胆人体在线| 久久综合久色欧美综合狠狠| 亚洲女同在线| 亚洲综合三区| 亚洲一二三区在线观看| 亚洲精品日韩久久| 亚洲激情影视| 亚洲激情在线观看视频免费|