位運(yùn)算

位運(yùn)算包括邏輯運(yùn)算和移位運(yùn)算贴谎,相應(yīng)地,位運(yùn)算符包括邏輯運(yùn)算符(包括~季稳、&擅这、|和^)和移位運(yùn)算符(包括>>、<<和>>>)景鼠。

1仲翎、邏輯運(yùn)算符

1.1 & 位與運(yùn)算

位與運(yùn)算的實(shí)質(zhì)是將參與運(yùn)算的兩個(gè)數(shù)據(jù),按對(duì)應(yīng)的二進(jìn)制數(shù)逐位進(jìn)行邏輯與運(yùn)算铛漓。例如:int型常量4和7進(jìn)行位與運(yùn)算的運(yùn)算過程如下:4=0000 0000 0000 0100 &7 =0000 0000 0000 0111= 0000 0000 0000 0100溯香。

1.2 | 位或運(yùn)算

位或運(yùn)算的實(shí)質(zhì)是將參與運(yùn)算的兩個(gè)數(shù)據(jù),按對(duì)應(yīng)的二進(jìn)制數(shù)逐位進(jìn)行邏輯或運(yùn)算浓恶。例如:int型常量5和7進(jìn)行位或運(yùn)算的表達(dá)式為5|7玫坛,結(jié)果如下:5= 0000 0000 0000 0101 | 7= 0000 0000 0000 0111=0000 0000 0000 0111。

1.3 ^ 位異或運(yùn)算

位異或運(yùn)算的實(shí)質(zhì)是將參與運(yùn)算的兩個(gè)數(shù)據(jù)包晰,按對(duì)應(yīng)的二進(jìn)制數(shù)逐位進(jìn)行邏輯異或運(yùn)算湿镀。只有當(dāng)對(duì)應(yīng)位的二進(jìn)制數(shù)互斥的時(shí)候,對(duì)應(yīng)位的結(jié)果才為真杜窄。例如:int型常量5和7進(jìn)行位異或運(yùn)算的表達(dá)式為5^7肠骆,結(jié)果如下:5=0000 0000 0000 0101^7=0000 0000 0000 0111 = 0000 0000 0000 0010。

1.4 ~ 位非運(yùn)算

位非運(yùn)算的實(shí)質(zhì)是將參與運(yùn)算的兩個(gè)數(shù)據(jù)塞耕,按對(duì)應(yīng)的二進(jìn)制數(shù)逐位進(jìn)行邏輯非運(yùn)算。

2嘴瓤、移位運(yùn)算符

2.1 位左移運(yùn)算

左移運(yùn)算的實(shí)質(zhì)是將對(duì)應(yīng)的數(shù)據(jù)的二進(jìn)制值逐位左移若干位扫外,并在空出的位置上填0,最高位溢出并舍棄廓脆。例如int a,b;

a=5;

b=a<<2;

則b=20筛谚,分析過程如下:
(a)10=(5)10=(0000 0000 0000 0101)2
b=a<<2;
b=(0000 0000 0001 0100)2=(20)10
從上例可以看出位運(yùn)算可以實(shí)現(xiàn)二倍乘運(yùn)算。由于位移操作的運(yùn)算速度比乘法的運(yùn)算速度高很多停忿。因此在處理數(shù)據(jù)的乘法運(yùn)算的時(shí)驾讲,采用位移運(yùn)算可以獲得較快的速度。提示:將所有對(duì)2的乘法運(yùn)算轉(zhuǎn)換為位移運(yùn)算席赂,可提高程序的運(yùn)行效率吮铭。

2.2 位右移運(yùn)算

位右移運(yùn)算的實(shí)質(zhì)是將對(duì)應(yīng)的數(shù)據(jù)的二進(jìn)制值逐位右移若干位,并舍棄出界的數(shù)字颅停。如果當(dāng)前的數(shù)為無符號(hào)數(shù)谓晌,高位補(bǔ)零。例如:
int (a)10=(5)10=(0000 0000 0000 0101)2
b=a>>2;
b=(0000 0000 0000 0001)2=(1)10
如果當(dāng)前的數(shù)據(jù)為有符號(hào)數(shù)癞揉,在進(jìn)行右移的時(shí)候纸肉,根據(jù)符號(hào)位決定左邊補(bǔ)0還是補(bǔ)1溺欧。如果符號(hào)位為0,則左邊補(bǔ)0柏肪;但是如果符號(hào)位為1姐刁,則根據(jù)不同的計(jì)算機(jī)系統(tǒng),可能有不同的處理方式烦味∧羰梗可以看出位右移運(yùn)算,可以實(shí)現(xiàn)對(duì)除數(shù)為2的整除運(yùn)算拐叉。
提示:將所有對(duì)2的整除運(yùn)算轉(zhuǎn)換為位移運(yùn)算岩遗,可提高程序的運(yùn)行效率。

2.3 復(fù)合位運(yùn)算符

在C語言中還提供復(fù)合的位運(yùn)算符凤瘦,如下:
&=宿礁、!=、>>=蔬芥、<<=和^=
例如:a&=0x11等價(jià)于 a= a&0x11梆靖,其他運(yùn)算符以此類推。
不同類型的整數(shù)數(shù)據(jù)在進(jìn)行混合類型的位運(yùn)算時(shí)笔诵,按右端對(duì)齊原則進(jìn)行處理返吻,按數(shù)據(jù)長(zhǎng)度大的數(shù)據(jù)進(jìn)行處理,將數(shù)據(jù)長(zhǎng)度小的數(shù)據(jù)左端補(bǔ)0或1乎婿。例如char a與int b進(jìn)行位運(yùn)算的時(shí)候测僵,按int 進(jìn)行處理,char a轉(zhuǎn)化為整型數(shù)據(jù)谢翎,并在左端補(bǔ)0捍靠。
補(bǔ)位原則如下:

  1. 對(duì)于有符號(hào)數(shù)據(jù):如果a為正整數(shù),則左端補(bǔ)0森逮,如果a 為負(fù)數(shù)榨婆,則左端補(bǔ)1。
  2. 對(duì)于無符號(hào)數(shù)據(jù):在左端補(bǔ)0褒侧。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末良风,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子闷供,更是在濱河造成了極大的恐慌烟央,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件这吻,死亡現(xiàn)場(chǎng)離奇詭異吊档,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)唾糯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門怠硼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鬼贱,“玉大人,你說我怎么就攤上這事香璃≌饽眩” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵葡秒,是天一觀的道長(zhǎng)姻乓。 經(jīng)常有香客問我,道長(zhǎng)眯牧,這世上最難降的妖魔是什么蹋岩? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮学少,結(jié)果婚禮上剪个,老公的妹妹穿的比我還像新娘。我一直安慰自己版确,他們只是感情好扣囊,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著绒疗,像睡著了一般侵歇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吓蘑,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天惕虑,我揣著相機(jī)與錄音,去河邊找鬼磨镶。 笑死枷遂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的棋嘲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼矩桂,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼沸移!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起侄榴,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤雹锣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后癞蚕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蕊爵,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年桦山,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了攒射。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片醋旦。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖会放,靈堂內(nèi)的尸體忽然破棺而出饲齐,到底是詐尸還是另有隱情,我是刑警寧澤咧最,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布捂人,位于F島的核電站,受9級(jí)特大地震影響矢沿,放射性物質(zhì)發(fā)生泄漏滥搭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一捣鲸、第九天 我趴在偏房一處隱蔽的房頂上張望瑟匆。 院中可真熱鬧,春花似錦摄狱、人聲如沸脓诡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽祝谚。三九已至,卻和暖如春酣衷,著一層夾襖步出監(jiān)牢的瞬間交惯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來泰國打工穿仪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留席爽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓啊片,卻偏偏與公主長(zhǎng)得像只锻,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子紫谷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

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