點(diǎn)擊查看:2015計(jì)算機(jī)等級考試二級Java入門教程章節(jié)匯總
點(diǎn)擊查看:2015計(jì)算機(jī)等級考試二級Java入門教程第二章匯總
2.9 按位操作
你可能已經(jīng)知道,我們討論過的所有整型變量在內(nèi)部都是以二進(jìn)制形式表示的。一個(gè)ink類型的數(shù)值由32位二進(jìn)制數(shù)字組成,在計(jì)算機(jī)界被稱為位。你可以使用位運(yùn)算符(bitwiseoperator)按位對整型數(shù)值進(jìn)行操作,有4個(gè)可用來按位操作的位運(yùn)算符:
每個(gè)運(yùn)算符都對獨(dú)個(gè)的二進(jìn)制位進(jìn)行操作,如下所述:
"非"運(yùn)算符~,屬一元運(yùn)算符,其結(jié)果對每個(gè)二進(jìn)制位的內(nèi)容求反,即1變?yōu)?,0變?yōu)?.
"與"運(yùn)算符&,將兩個(gè)操作數(shù)對應(yīng)的二進(jìn)制位進(jìn)行"與",如果第一個(gè)操作數(shù)與第二個(gè)操作數(shù)的對應(yīng)位都是1,則該位結(jié)果為1,否則該位結(jié)果為0
"或"運(yùn)算符1,將兩個(gè)操作數(shù)對應(yīng)的二進(jìn)制位進(jìn)行"或",如果兩個(gè)操作數(shù)的對應(yīng)位,其中有一個(gè)是1,則該位結(jié)果為1.只有兩個(gè)對應(yīng)的二進(jìn)制位都是O時(shí),該位結(jié)果才為0.
"異或"運(yùn)算符^,將兩個(gè)操作數(shù)對應(yīng)的二進(jìn)制位進(jìn)行"異或",如果第一個(gè)數(shù)和第二個(gè)操作數(shù)對應(yīng)的位值相同,則該位結(jié)果為0,否則該位結(jié)果為1.
在下面這個(gè)例子中,你可以看到這些運(yùn)算符的操作效果。
示意圖中顯示了組成操作數(shù)和結(jié)果的二進(jìn)制數(shù)字。在三種二進(jìn)制操作中,每一種都分別作用于兩個(gè)操作數(shù)所對應(yīng)的位。"非"運(yùn)算符對操作數(shù)中的每一位內(nèi)容求反。
由于在位操作中,你關(guān)心的是每一個(gè)二進(jìn)制位,所以用通常的十進(jìn)制數(shù)值書寫常數(shù),不是很便利。在這種情況下,書寫二進(jìn)制數(shù)值的最好方法是用十六進(jìn)制數(shù)值,這是因?yàn)槟憧梢院芸斓貙?shù)值從二進(jìn)制轉(zhuǎn)換到十六進(jìn)制,反之亦然。在附錄E中有更加詳細(xì)的介紹。
結(jié)果將互換a和b的值,但是要記住,它只能應(yīng)用于整型數(shù)。我們可以用任意一對數(shù)值a和b來試驗(yàn)一下,例如它們分別為DxD00F和OxABAD.我們也只看每個(gè)變量的16位。第一條語句將a改變?yōu)樾轮担?/P>
相關(guān)推薦:
2015計(jì)算機(jī)等級考試二級Java入門教程第一章匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |