位運算符如何理解

1. 按位與運算

按位與運算符"&"是雙目運算符。其功能是參與運算的兩數(shù)各對應的二進位相與剔猿。只有對應的兩個二進位均為1時峦嗤,結果位才為1 ,否則為0腊徙。參與運算的數(shù)以補碼方式出現(xiàn)简十。

  • 例子:

9&5 = 1可寫算式如下:
00001001 (9的二進制補碼) 00000101 (5的二進制補碼) 00000001 (1的二進制補碼)
00001001 & 00000101 = 00000001

  • 總結:按位與運算通常用來對某些位清0或保留某些位。例如把 a 的高八位清 0 撬腾, 保留低八位螟蝙, 可作 a&255 運算 ( 255 的二進制數(shù)為0000000011111111)。

  • 應用:

a. 清零s特定位 (mask中特定位置0时鸵,其它位為1胶逢,s = s&mask)
b. 取某數(shù)s中指定位 (mask中特定位置1姥闪,其它位為0驶社,s = s&mask)

2. 按位或運算

按位或運算符“|”是雙目運算符别威。其功能是參與運算的兩數(shù)各對應的二進位相或。只要對應的二個二進位有一個為1時彭雾,結果位就為1。參與運算的兩個數(shù)均以補碼出現(xiàn)锁保。

  • 例子:

9|5 = 13可寫算式如下:

00001001|00000101 = 00001101(十進制為13)

  • 總結:常用來將源操作數(shù)某些位置1薯酝,其它位不變。

  • 應用:

s特定位置1(mask中特定位置1爽柒,其它位為0吴菠, s=s|mask)

3. 按位異或運算

按位異或運算符“^”是雙目運算符。其功能是參與運算的兩數(shù)各對應的二進位相異或浩村,當兩對應的二進位相異時做葵,結果為1。參與運算數(shù)仍以補碼出現(xiàn)心墅。

  • 例子:

9^5 = 12可寫成算式如下:

00001001^00000101 = 00001100 (十進制為12)

  • 應用:

a. 使s特定位的值取反 (mask中特定位置1酿矢,其它位為0, s=s^mask)
b. 不引入第三變量怎燥,交換兩個變量的值 (設 a=a1,b=b1)

目 標 操 作 操作后狀態(tài)
a=a1^b1 a=a^b a=a1^b1, b=b1
b=a1^b1^b1 b=a^b a=a1^b1,b=a1
a=b1^a1^a1 a=a^b a=b1,b=a1
  1. 求反運算

求反運算符為單目運算符瘫筐,具有右結合性。 其功能是對參與運算的數(shù)的各二進位按位求反铐姚。
例如~9的運算為:
~(0000000000001001) = 1111111111110110

  1. 左移運算

左移運算符“<<”是雙目運算符策肝。其功能把“<< ”左邊的運算數(shù)的各二進位全部左移若干位,由“<<”右邊的數(shù)指定移動的位數(shù), 高位丟棄之众,低位補0篇梭。 相當于其值乘以幾個2。
例如:
a<<4 指把a的各二進位向左移動4位酝枢。即a*2*2*2*2,a乘以4個2

a=00000011(十進制3)
a<<4 -> 00110000(十進制48)
  1. 右移運算

右移運算符“>>”是雙目運算符恬偷。其功能是把“>> ”左邊的運算數(shù)的各二進位全部右移若干位,“>>”右邊的數(shù)指定移動的位數(shù)帘睦。相當于其值除以幾個2,并只取整數(shù)袍患。

例如:

a= 000001111(十進制15)
a>>2 -> 00000011(十進制3)

對于左邊移出的空位,如果是正數(shù)則空位補0竣付,若為負數(shù)诡延,可能補0或補1,這取決于所用的計算機系統(tǒng)古胆。移入0的叫邏輯右移肆良,移入1的叫算術右移,Turbo C采用邏輯右移逸绎。

main(){ 
unsigned a,b; 
printf("input a number: "); 
scanf("%d",&a); 
b=a>>5; 
b=b&15; 
printf("a=%d b=%d ",a,b); 
} 

再看一例:

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 b=%d c=%d d=%d ",a,b,c,d); 
} 
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末惹恃,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子棺牧,更是在濱河造成了極大的恐慌巫糙,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颊乘,死亡現(xiàn)場離奇詭異参淹,居然都是意外死亡,警方通過查閱死者的電腦和手機乏悄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門浙值,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人檩小,你說我怎么就攤上這事开呐。” “怎么了识啦?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵负蚊,是天一觀的道長。 經常有香客問我颓哮,道長家妆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任冕茅,我火速辦了婚禮伤极,結果婚禮上蛹找,老公的妹妹穿的比我還像新娘。我一直安慰自己哨坪,他們只是感情好庸疾,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著当编,像睡著了一般届慈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上忿偷,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天金顿,我揣著相機與錄音,去河邊找鬼鲤桥。 笑死揍拆,一個胖子當著我的面吹牛,可吹牛的內容都是我干的茶凳。 我是一名探鬼主播嫂拴,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼贮喧!你這毒婦竟也來了筒狠?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤塞淹,失蹤者是張志新(化名)和其女友劉穎窟蓝,沒想到半個月后罪裹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饱普,經...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年状共,在試婚紗的時候發(fā)現(xiàn)自己被綠了套耕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡峡继,死狀恐怖冯袍,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情碾牌,我是刑警寧澤康愤,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站舶吗,受9級特大地震影響征冷,放射性物質發(fā)生泄漏。R本人自食惡果不足惜誓琼,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一检激、第九天 我趴在偏房一處隱蔽的房頂上張望肴捉。 院中可真熱鬧,春花似錦叔收、人聲如沸齿穗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽窃页。三九已至,卻和暖如春复濒,著一層夾襖步出監(jiān)牢的瞬間腮出,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工芝薇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留胚嘲,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓洛二,卻偏偏與公主長得像馋劈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子晾嘶,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內容

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line)妓雾,也就是一...
    悟名先生閱讀 4,153評論 0 13
  • 運算符是處理數(shù)據的基本方法,用來從現(xiàn)有的值得到新的值垒迂。JavaScript 提供了多種運算符械姻,本章逐一介紹這些運算...
    許先生__閱讀 608評論 0 3
  • 本章將會介紹 模塊和源文件訪問級別訪問控制語法自定義類型子類常量楷拳、變量、屬性吏奸、下標構造器協(xié)議擴展泛型類型別名位運算...
    寒橋閱讀 888評論 0 2
  • 高級運算符(Advanced Operators) 本文參考自蘋果官方文檔Advanced Operators本頁...
    果啤閱讀 1,595評論 1 5
  • 小Y是我高中時期的同學欢揖,溫柔漂亮,獨立大方奋蔚。很要強她混,人又好,連現(xiàn)在回想起來光是能遇到她都是美好的事情泊碑。高中總是在教...
    久吧閱讀 400評論 0 0