3.4位運(yùn)算符
位運(yùn)算符用來對二進(jìn)制位進(jìn)行操作,Java中提供了如下表所示的位運(yùn)算符:
位運(yùn)算符中,除~以外,其余均為二元運(yùn)算符。
操作數(shù)只能為整型和字符型數(shù)據(jù)。
3.4.1補(bǔ)碼
Java使用補(bǔ)碼來表示二進(jìn)制數(shù),在補(bǔ)碼表示中,最高位為符號位,正數(shù)的符號位為0,負(fù)數(shù)為1。補(bǔ)碼的規(guī)定如下:
對正數(shù)來說,最高位為0,其余各位代表數(shù)值本身(以二進(jìn)制表示),如+42的補(bǔ)碼為00101010。
對負(fù)數(shù)而言,把該數(shù)絕對值的補(bǔ)碼按位取反,然后對整個數(shù)加1,即得該數(shù)的補(bǔ)碼。如-42的補(bǔ)碼為11010110(00101010按位取反11010101+1=11010110)
用補(bǔ)碼來表示數(shù),0的補(bǔ)碼是唯一的,都為00000000。(而在原碼,反碼表示中,+0和-0的表示是不唯一的,可參見相應(yīng)的書籍)。而且可以用111111表示-1的補(bǔ)碼(這也是補(bǔ)碼與原碼和反碼的區(qū)別)。
3.4.2按位取反運(yùn)算符~
~是一元運(yùn)算法,對數(shù)據(jù)的每個二進(jìn)制位取反,即把1變?yōu)?,把0變?yōu)?。
例如:
0010101
~
1101010
注意,~運(yùn)算符與-運(yùn)算符不同,~21≠-21。
3.4.3按位與運(yùn)算符&
參與運(yùn)算的兩個值,如果兩個相應(yīng)位都為1,則該位的結(jié)果為1,否則為0。即:
0&0=0,0&1=0,1&0=0,1&1=1
相關(guān)推薦:
計(jì)算機(jī)等級考試合格標(biāo)準(zhǔn)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |