1、& 與運算
其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1,否則為0。
參與運算的數以補碼方式出現。(正數的補碼是其本身)
例:9&5=?
9的二進位制位為0000 1001 &
5的二進位制位為0000 0101 結果為0000 0001, 轉化為十進位制就為1
所以9 & 5 = 1
按位與運算通常用來對某些位清0或保留某些位。例如把a 的高八位清 0 ,保留低八位,可作a&255運算(255 的二進位制數為0000000011111111)。
2、| 或運算
其功能是參與運算的兩數各對應的二進位相或。
只要對應的兩個二進位有乙個為1時,結果位就為1。參與運算的兩個數均以補碼出現。
例:6|8=?
6的二進位制位為0000 0110 |
8的二進位制位為0000 1000 結果為0000 1110,轉化為十進位制為14
所以6 | 8 = 14
3、^ 異或運算
其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。參與運算數仍以補碼出現.
例如: 4 ^ 9 =?
0000 0100 ^ 0000 1001=0000 1101,結果為13
4、~ 取反運算
其功能是對參與運算的數的各二進位按位求反
例如 :~9 (~0000 0000 0000 1001)取反之後為(1111 1111 1111 0110)
5、<< 左移運算 相當於 * 2
左移運算子「<<」是雙目運算子。其功能把「<< 」左邊的運算數的各二進位全部左移若干位,由「<<」右邊的數指定移動的位數,高位丟棄,低位補0。例如:
a<<4
指把a的各二進位向左移動4位。如a=00000011(十進位制3),左移4位後為00110000(十進位制48)。
6、>> 右移運算 正數高位補0。
右移運算子「>>」是雙目運算子。其功能是把「>>」左邊的運算數的各二進位全部右移若干位,「>>」右邊的數指定移動的位數。例如:
設 a=15,
a>>2
表示把000001111右移為00000011(十進位制3)。
注意:對於有符號數,在右移時,符號位將隨同移動。當為正數時,最高位補0,而為負數時,符號位為1,
最高位是補0或是補1 取決於編譯系統的規定。turbo c和很多系統規定為補1。
進製運算與位運算
不可以在二進位制表示形式中使用負號 5 0000 0101 5 1111 1011 取反加一 既是補碼 負數二進位制的計算方法是把整數二進位制按位求反 再加一 就是補碼 每個有符號資料型別中首位為 1 其它位都是 0 的二進位制表示這個資料型別的最小數 採用剛才的計算方法同樣可以根據負數的二進位制補...
位運算與移位運算
位運算指的是進行二進位制位的運算 位運算子說明 取反 按位與 按位或 按位異或 左移運算子,左移一位等於乘二 右移運算子,右移一位相當於除2取商 按位取反 按位與 按位或 按位異或的 執行操作 int a 7 0111 int b 8 1000 system.out.println a b 按位與結...
位運算子與位運算
位運算是對二進位制位的操作,它應用於整形資料,把整形資料看成固定的二進位制序列,然後對二進位制序列進行位運算 按位與運算 按位與運算子 是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 否則為0。參與運算的數以補碼方式出現。例c a b a 1010...