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