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