C語言位運(yùn)算符及常見用法

一奋刽、位運(yùn)算符C語言提供了六種位運(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。參與運(yùn)算的數(shù)以補(bǔ)碼方式出現(xiàn)点额。
例如:9&5可寫算式如下: 00001001 (9的二進(jìn)制補(bǔ)碼)&00000101 (5的二進(jìn)制補(bǔ)碼) 00000001 (1的二進(jìn)制補(bǔ)碼)可見9&5=1舔株。
  按位與運(yùn)算通常用來對(duì)某些位清0或保留某些位。例如把a(bǔ) 的高八位清 0 还棱, 保留低八位载慈, 可作 a&255 運(yùn)算 ( 255 的二進(jìn)制數(shù)為0000000011111111)。

main(){
int a=9,b=5,c;
c=a&b;
printf("a=%d/nb=%d/nc=%d/n",a,b,c);
}

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)算的兩個(gè)數(shù)均以補(bǔ)碼出現(xiàn)料扰。
例如:9|5可寫算式如下: 00001001|00000101
00001101 (十進(jìn)制為13)可見9|5=13

main(){
int a=9,b=5,c;
c=a|b;
printf("a=%d/nb=%d/nc=%d/n",a,b,c);
}

3. 按位異或運(yùn)算###

按位異或運(yùn)算符“”是雙目運(yùn)算符。其功能是參與運(yùn)算的兩數(shù)各對(duì)應(yīng)的二進(jìn)位相異或焙蹭,當(dāng)兩對(duì)應(yīng)的二進(jìn)位相異時(shí)晒杈,結(jié)果為1。參與運(yùn)算數(shù)仍以補(bǔ)碼出現(xiàn)孔厉,例如95可寫成算式如下: 00001001^00000101 00001100 (十進(jìn)制為12)

main(){
int a=9;
a=a^15;
printf("a=%d/n",a);
}

4. 求反運(yùn)算###

求反運(yùn)算符~為單目運(yùn)算符拯钻,具有右結(jié)合性。 其功能是對(duì)參與運(yùn)算的數(shù)的各二進(jìn)位按位求反撰豺。例如~9的運(yùn)算為: ~(0000000000001001)結(jié)果為:1111111111110110

5. 左移運(yùn)算###

左移運(yùn)算符“<<”是雙目運(yùn)算符粪般。其功能把“<< ”左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由“<<”右邊的數(shù)指定移動(dòng)的位數(shù)污桦,
高位丟棄亩歹,低位補(bǔ)0。例如: a<<4 指把a(bǔ)的各二進(jìn)位向左移動(dòng)4位。如a=00000011(十進(jìn)制3)小作,左移4位后為00110000(十進(jìn)制48)亭姥。

6. 右移運(yùn)算###

右移運(yùn)算符“>>”是雙目運(yùn)算符。其功能是把“>> ”左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干位顾稀,“>>”右邊的數(shù)指定移動(dòng)的位數(shù)达罗。
例如:設(shè) a=15,a>>2 表示把000001111右移為00000011(十進(jìn)制3)静秆。 應(yīng)該說明的是粮揉,對(duì)于有符號(hào)數(shù),在右移時(shí)抚笔,符號(hào)位將隨同移動(dòng)扶认。當(dāng)為正數(shù)時(shí), 最高位補(bǔ)0殊橙,而為負(fù)數(shù)時(shí)蝠引,符號(hào)位為1,最高位是補(bǔ)0或是補(bǔ)1 取決于編譯系統(tǒng)的規(guī)定蛀柴。Turbo C和很多系統(tǒng)規(guī)定為補(bǔ)1螃概。

main(){
unsigned a,b;
printf("input a number: ");
scanf("%d",&a);
b=a>>5;
b=b&15;
printf("a=%d/tb=%d/n",a,b);
}
請?jiān)倏匆焕?
main(){
char a='a',b='b';
int p,c,d;
p=a;
p=(p<<8)|b;
d=p&0xff;
c=(p&0xff00)>>8;
printf("a=%d/nb=%d/nc=%d/nd=%d/n",a,b,c,d);
}

摘錄自:C語言位運(yùn)算符及常見用法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市鸽疾,隨后出現(xiàn)的幾起案子吊洼,更是在濱河造成了極大的恐慌,老刑警劉巖制肮,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冒窍,死亡現(xiàn)場離奇詭異,居然都是意外死亡豺鼻,警方通過查閱死者的電腦和手機(jī)综液,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來儒飒,“玉大人谬莹,你說我怎么就攤上這事∽耍” “怎么了附帽?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長井誉。 經(jīng)常有香客問我蕉扮,道長,這世上最難降的妖魔是什么颗圣? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任喳钟,我火速辦了婚禮屁使,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘奔则。我一直安慰自己蛮寂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布应狱。 她就那樣靜靜地躺著,像睡著了一般祠丝。 火紅的嫁衣襯著肌膚如雪疾呻。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天写半,我揣著相機(jī)與錄音岸蜗,去河邊找鬼。 笑死叠蝇,一個(gè)胖子當(dāng)著我的面吹牛璃岳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播悔捶,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼铃慷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蜕该?” 一聲冷哼從身側(cè)響起犁柜,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎堂淡,沒想到半個(gè)月后馋缅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绢淀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年萤悴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片皆的。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡覆履,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出费薄,到底是詐尸還是另有隱情内狗,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布义锥,位于F島的核電站柳沙,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏拌倍。R本人自食惡果不足惜赂鲤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一噪径、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧数初,春花似錦找爱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至仑鸥,卻和暖如春吮播,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背眼俊。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來泰國打工意狠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人疮胖。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓环戈,卻偏偏與公主長得像,于是被迫代替她去往敵國和親澎灸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子院塞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容