一、按位與 &
位全為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...