更新時間:2020-07-14 16:25:16 來源:動力節(jié)點 瀏覽3867次
位運算符
位運算符除了按位與和按位或運算以外,其他的只能用于處理整數(shù)的操作數(shù)。位運算是完全正對位方面的操作。整型數(shù)據(jù)在內(nèi)存中以二進制的形式表示,如int型變量7的二進制表示00000000 00000000 00000000 00000111。
左邊最高位是符號位,最高位是0表示整數(shù),若為1則表示負數(shù)。負數(shù)采用補碼表示,如-8的二進制表示為11111111 11111111 11111111 11111000。這樣就可以對整型數(shù)據(jù)進行按位運算。
1、“按位與”運算
“按位與”運算符為“&”,為雙目運算符。“按位與”運算的運算法則是:如果兩個整型數(shù)據(jù)a、b對應(yīng)為都是1,則結(jié)果為才是1,否則為0。如果兩個操作數(shù)的精度不同,則結(jié)果得的精度與精度高的操作數(shù)相同,如下圖所示:
2、“按位或”運算
“按位或”運算的運算符為“|”,為雙目運算符。“按位或”運算的運算法則是:如果兩個操作數(shù)對應(yīng)高位都是0,則結(jié)果為才是0,否則為1。如果兩個操作數(shù)的精度不同,則結(jié)果的精度與精度高的操作數(shù)相同,如下圖所示:
3、“按位取反”運算
“按位取反”運算也稱為“按位非”運算,運算符為“~”,為彈幕運算符。“按位取反”就是將操作數(shù)二進制中的1修改為0,0修改為1,如下圖所示:
4、“按位異或”運算
“按位異或”運算的運算符是“^”,為雙目運算符。“按位異或”運算的運算法則是:當兩個操作數(shù)的二進制表示相同(同時為0或同事為1)時,結(jié)果為0,否則為1。若兩個操作數(shù)的進度不同,則結(jié)果數(shù)的精度與精度高的操作數(shù)相同,如下圖所示:
5、移位操作
除了上述的運算以外,還可以對數(shù)據(jù)按二進制為進行移位操作。Java中的移位運算符有以下3中:
1.
2.>>;右移
3.>>>;無符號右移
左移就將左邊的操作數(shù)在內(nèi)存中的二進制數(shù)據(jù)左移變比阿耨操作數(shù)指定的位數(shù),左邊移空的部分補0。右移則復雜一些,當使用“>>”符號時,如果最高位是0,左移空的位就填入0;如果最高位是1,右移空的位就填入1。
Java還提供了無符號右移,“>>>”,無論最高位是0還是1,左側(cè)移空的最高位都填入0.
注意:
位移運算符使用的數(shù)據(jù)類型有byte、short、char、int和long。
技巧:
移位可以實現(xiàn)整數(shù)整除移或者乘以2的n次方的效果。例如:y>1的結(jié)果與y/2的結(jié)果相同。總之,一個數(shù)左移n位,就是將這個數(shù)乘以2的n次方;一個數(shù)右移n位,就是將這個數(shù)除以2的n次方。2與y*4的結(jié)果相同;y>
Java技術(shù)內(nèi)容
Java運算符概述:http://www.ilovecolors.com.cn/tutorial_java_se/79.html
Java位運算符:http://www.ilovecolors.com.cn/tutorial_java_se/83.html
以上就是動力節(jié)點java培訓機構(gòu)的小編針對“Java位運算符使用方法和技巧”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。