二進位制的位運算

2021-07-16 02:51:04 字數 1050 閱讀 9037

按位與&

兩位全為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取反 得到倒數第...