二進位制位運算

2021-08-09 04:41:17 字數 1596 閱讀 5978

一、按位與 &

位全為1,結果才為1

0&0=0;0&1=0;1&0=0;1&1=1;

特殊用法:

清零。如果想將乙個單元清零,就是使其全部二進位制位為0,只要與乙個各位都為零的數值相與,結果為零;

取乙個數中的指定位。如x=10101110要取x的低4位,用x&00001111=00001110即可;

二、按位或 |

只要有乙個為1,結果就為1

0|0=0;0|1=1;1|0=1;1|1=1;

特殊用法:

常用來對乙個資料的某些位設為1。如將x=10100000的低4位置1,用x|00001111=10101111即可

三、異或運算 ^

兩個相應位為「異」(值不同),則該位結果為1,否則為0

0^0=0;0^1=1;1^0=1;1^1=0;

特殊用法:

使特定位翻轉。找乙個數,對應x要翻轉的各位,該數的對應位為1,其餘位為0。如x=10101110,使x低4位翻轉,用x^00001111=10100001即可;

與0相異或,保留原值。如x^00000000=10101110;

借用第2個用法,可以實現兩個變數交換值。

兩個變數交換值的方法:

借助第三個變數來實現;

c=a;a=b;b=c;

利用加減法實現兩個變數的交換;

a=a+b;b=a-b;a=a-b;

用位異或運算來實現,效率最高;

原理:利用乙個數異或本身等於0,以及異或運算符合交換律;

如a=a^b;b=a^b;a=a^b;

四、取反運算 ~

對乙個二進位制數按位取反,0變為1,1變為0

五、左移運算 <<

將乙個運算物件的各二進位制位全部左移若干位(左邊的二進位制位丟棄,右邊補0) 2<<1=4

若左移時捨棄的高位不包含1,則每左移一位,相當於該數乘以2。

-14(即二進位制的11110010)<<2=(11001000)

11(1011)<<2=44

相當於11(00000000 00000000 00000000 1011)

六、右移運算 >>

將乙個數的各二進位制位全部右移若干位,正數左補0,負數左補1,右邊丟棄。運算元每右移一位,相當於該數除以2。左補0還是1要看被移數是正還是負

七、無符號右移運算》

各個位向右移指定的位數。右移後左邊空出的位用0來填充,移出右邊的位被丟棄

負數以其正值的補碼形式表示

原碼:乙個整數按照絕對值大小轉換成的二進位制數成為原碼

反碼:將二進位制數按位取反,所得的新二進位制數稱為原二進位制數的反碼

補碼:反碼加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 按...

位運算 顛倒二進位制位

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

二進位制 位運算 位移運算

二進位制.位運算.位移運算 二進位制是逢2進製的進製,0 1是基本算符。現代的電子計算機技術全部採用的是二進位制,因為它只是使用0 1兩個數字符號,非常簡單方便,易於用電子方式實現。計算機當中計算1 1步驟如下 找到1的補碼 正數的原碼 反碼 補碼相同 2計算機當中計算1 2步驟如下 1 2 1 2...