按位與(&)按位或(|)按位異或(^)按位取反(~)左移(<<)

看源碼期間遇到了取反(~)秸侣,就做個記錄。

基礎(chǔ)知識:

1. and(&)運算 (按位與)

and運算通常用于二進制取位操作,例如一個數(shù) and 1的結(jié)果就是取二進制的最末位。這可以用來判斷一個整數(shù)的奇偶,二進制的最末位為0表示該數(shù)為偶數(shù),最末位為1表示該數(shù)為奇數(shù).
  相同位的兩個數(shù)字都為1,則為1;若有一個不為1宵蕉,則為0。
  00111
  11100
 〗诎瘛(&或者and)
  ----------------
  00100

2. or(|)運算 (按位或)

or運算通常用于二進制特定位上的無條件賦值羡玛,例如一個數(shù)or 1的結(jié)果就是把二進制最末位強行變成1。如果需要把二進制最末位變成0宗苍,對這個數(shù)or 1之后再減一就可以了稼稿,其實際意義就是把這個數(shù)強行變成最接近的偶數(shù)薄榛。
  相同位只要一個為1即為1。
  00111
  11100
 ∪眉摺(|或者or)
  ----------------
  11111

3. xor(^)運算 (按位異或)

異或的符號是⊕敞恋。
  xor運算通常用于對二進制的特定一位進行取反操作,因為異或可以這樣定義:0和1異或0都不變谋右,異或1則取反硬猫。
  xor運算的逆運算是它本身,也就是說兩次異或同一個數(shù)最后結(jié)果不變改执,即(a xor b) xor b = a啸蜜。xor運算可以用于簡單的加密,比如我想對我MM說1314520辈挂,但怕別人知道衬横,于是雙方約定拿我的生日19880516作為密鑰。1314520 xor 19880516 = 20665500终蒂,我就把20665500告訴MM冕香。MM再次計算20665500 xor 19880516的值,得到1314520后豫,于是她就明白了我的企圖。
  相同位不同則為1突那,相同則為0挫酿。
  00111
  11100
  (^或者xor)
  ----------------
  11011

4.~取反

就是如果是00111愕难,則變?yōu)?1000 (按位取反)

~是按位取反的意思.
57的二進制表示為(1個字節(jié)):00111001
按位取反后(~57)的二進制: 11000110 此表示為十進制:-70
這是一個負數(shù),是有符號的數(shù),負數(shù)在計算機里要用其補碼來表示:補碼=符號位以后按位取反再加1.
所以-70(11000110)符號位以后按位取反后為(10111001) 再加1 則為(10111010)
換成十進制為:-58
因此~57=-58

5.>>是右移位運算

右移1位即除以2早龟;,并且取整猫缭。
m_Height>>4相當于:
m_Height/16

6.<<是左移位運算

若左移一位葱弟,則其數(shù)值變?yōu)?a*2

今日又看到這樣的表達,a|=b 猜丹,意思是a=(a|b)芝加,這與 a+=b有點類似。例子如下:

int a = 1,b = 2,c = 4;//0x0001,0x0010,0x0100
a |= b;// a = 0x0011 = 3
b |= c;// b = 0x0110 = 6

這種表達很有用射窒,這個方式在很多需要一個值標識多種狀態(tài)下普遍適用藏杖。參見 http://bbs.csdn.net/topics/380232699

原文:https://blog.csdn.net/zhongjling/article/details/8004103

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市脉顿,隨后出現(xiàn)的幾起案子蝌麸,更是在濱河造成了極大的恐慌,老刑警劉巖艾疟,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件来吩,死亡現(xiàn)場離奇詭異敢辩,居然都是意外死亡,警方通過查閱死者的電腦和手機弟疆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門戚长,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人兽间,你說我怎么就攤上這事历葛。” “怎么了嘀略?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵恤溶,是天一觀的道長。 經(jīng)常有香客問我帜羊,道長咒程,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任讼育,我火速辦了婚禮帐姻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘奶段。我一直安慰自己饥瓷,他們只是感情好,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布痹籍。 她就那樣靜靜地躺著呢铆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蹲缠。 梳的紋絲不亂的頭發(fā)上棺克,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機與錄音线定,去河邊找鬼娜谊。 笑死,一個胖子當著我的面吹牛斤讥,可吹牛的內(nèi)容都是我干的纱皆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼周偎,長吁一口氣:“原來是場噩夢啊……” “哼抹剩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蓉坎,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤澳眷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蛉艾,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钳踊,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡衷敌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了拓瞪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缴罗。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖祭埂,靈堂內(nèi)的尸體忽然破棺而出面氓,到底是詐尸還是另有隱情,我是刑警寧澤蛆橡,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布舌界,位于F島的核電站,受9級特大地震影響泰演,放射性物質(zhì)發(fā)生泄漏呻拌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一睦焕、第九天 我趴在偏房一處隱蔽的房頂上張望藐握。 院中可真熱鬧,春花似錦垃喊、人聲如沸猾普。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抬闷。三九已至,卻和暖如春耕突,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背评架。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工眷茁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纵诞。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓上祈,卻偏偏與公主長得像,于是被迫代替她去往敵國和親浙芙。 傳聞我的和親對象是個殘疾皇子登刺,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

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