按位與&
兩位全為1,結果為1
特殊用途
(1)清零,想要將乙個單位清零,只要與乙個各位都為零的數值相與,結果為零
(2)去乙個數中的指定位
如:x=10101110,取x的低四位用x&0000 1111=0000 1110即可得到
方法:找到乙個數,對應x要取的位,該數的對應位為1,其餘位為0,用此數與x進行與運算即可
按位或 |
只要有乙個為1,結果就為1
按位異或 ^
兩個相應位為「異」(值不同)則結果為1,否則為0.
特殊用途
(1)使特定位翻轉
例:x=1010 1110 使x的低四位翻轉,用x^0000 1111=1010 0001即可得到
(2)與0亦或,保留原值
兩個變數交換方法不借助第三方變數:
1.a=a+b,b=a-b,a=a-b;
2.a=a^b,b=a^b,a=a^b;
按位左移<<
將乙個運算物件的各二進位制位全部左移若干位(左邊的二進位制位丟棄,右邊補零)
如:2<<1=4 (0000 0010)(0000 0100)
若左移時捨棄的高位不包含1,則每左移一位,相當於該數乘以2
計算-14(11111111 11111111 11111111 11110010)<<2
=11111111 11111111 11111111 11001000
只需要該補碼的原碼對應的正值,然後取相反數
1、補碼減1得到反碼(11000111)
2、取反得到原碼(00111000)
3、計算正值
4、取相反數
按位右移》
將乙個數的各二進位制位全部向右移若干位,正數左補0,負數左補1,右邊丟棄
無符號右移》
向右移指定位數,左邊空出來的位數用零來填充,右邊位被丟棄。
碼制原碼
乙個整數按照絕對值大小轉換成的二進位制數稱為原碼
反碼將二進位制數按位取反,所得的新二進位制數稱為原二進位制數的反碼。
補碼(負數以其正值的補碼形式表示)
反碼加1
二進位制位運算
與運算,6 3 2 或運算 6 3 7 異或運算 6 3 5 反碼 6 7 左移 3 2 12 3 2 2 12 右移 3 1 1 3 2 1 無符號右移 3 1 1 3 2 1 按位與,當兩位同時為1時才為1如 1 1 1 1 0 0 0 1 0 6 3相當於 0110 0011 0010 2 按...
二進位制位運算
一 按位與 位全為1,結果才為1 0 0 0 0 1 0 1 0 0 1 1 1 特殊用法 清零。如果想將乙個單元清零,就是使其全部二進位制位為0,只要與乙個各位都為零的數值相與,結果為零 取乙個數中的指定位。如x 10101110要取x的低4位,用x 00001111 00001110即可 二 按...
位運算 顛倒二進位制位
a代表某字串 a b 異或 相同為0,不同為1 若b是一串0,則a b a,a b 0 a a 0 若b是一串1,則a b a,相當於把a取反,a b a a a a 利用x x 0,可以將三個數中重複的兩個數去掉 n 相當於無符號右移,左邊會補上0 獲取11111111,只需要把0取反 得到倒數第...