15.2簡(jiǎn)單的位運(yùn)算
C語(yǔ)言提供了位(bit)運(yùn)算的功能,這使它像匯編語(yǔ)言一樣用來(lái)編寫(xiě)系統(tǒng)程序。位運(yùn)算符共有六種;
位運(yùn)算符
位運(yùn)算符含義
&位與
︳位或
∧位異或
~位取反
<<位左移
>>位右移
本節(jié)介紹前四種運(yùn)算,即位的邏輯運(yùn)算。
1.按位與運(yùn)算
、俑拍
“按位與”運(yùn)算符“&”是雙目運(yùn)算符,其功能是將參與運(yùn)算兩數(shù)的各對(duì)應(yīng)二進(jìn)位相與。只能對(duì)應(yīng)的兩個(gè)二進(jìn)位均為1時(shí),結(jié)果位才為1,否則為0。
、凇鞍次慌c”與運(yùn)算的特殊用途
ⅰ.清零
如果想將一個(gè)存儲(chǔ)單元清零,即使其全部二進(jìn)位為0,可按這樣的方法計(jì)算:
找一個(gè)數(shù),它的補(bǔ)碼形式中各位的值符合如下條件:原來(lái)的數(shù)中為1的位,新數(shù)中相應(yīng)位為0(注意,并不要求原數(shù)為0的位上,新數(shù)相應(yīng)位為1,新數(shù)相應(yīng)位可以是0或1);對(duì)二者進(jìn)行&運(yùn)算。
、.取一個(gè)數(shù)中某些字節(jié)
對(duì)于一個(gè)整數(shù)a(占2個(gè)字節(jié)),如要想得到其中的低字節(jié),只需將a與特定的一個(gè)數(shù)按位與即可。
、垡雽⒁粋(gè)數(shù)的某一位保留下來(lái),可將該數(shù)與一個(gè)特定的數(shù)進(jìn)行&處理。
2.按位或運(yùn)算
“按位或”運(yùn)算符“︳”是雙目運(yùn)算符,其功能是將參與運(yùn)算兩數(shù)的各對(duì)應(yīng)的二進(jìn)位相或。只要對(duì)應(yīng)的兩個(gè)二進(jìn)位有一個(gè)為1時(shí),結(jié)果位就為1。參與運(yùn)算的整數(shù)均以補(bǔ)碼出現(xiàn)。
3.按位異或運(yùn)算
、俑拍
“按位異或”運(yùn)算符“∧”是雙目運(yùn)算符,其功能是將參與運(yùn)算兩數(shù)的各對(duì)應(yīng)位相異或,當(dāng)兩對(duì)應(yīng)的二進(jìn)位相異時(shí),結(jié)果為1,否則為0。參與運(yùn)算整數(shù)仍以補(bǔ)碼出現(xiàn)。
②“異或”運(yùn)算的特殊應(yīng)用
、.使特定位翻轉(zhuǎn)
、.與0相“異或”,保留原值。
ⅲ.交換兩個(gè)值。
4.“取反”運(yùn)算
“~”是一個(gè)一元運(yùn)算符,即它的運(yùn)算量只有一個(gè),用來(lái)對(duì)一個(gè)二進(jìn)制數(shù)按位取反,即將0變1,1變0。比如說(shuō),~025就是對(duì)八進(jìn)制數(shù)25(即二進(jìn)制數(shù)000000000010101)按位求反。
![]() | ![]() .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書(shū)籍 |
![]() | ![]() .. 定價(jià):¥133 優(yōu)惠價(jià):¥133.0 更多書(shū)籍 |