4.右移(>>)
5.與6.或
7.異或^
8.位運算的應用
ending
1) 將參加運算的兩個數轉換為二進位制,若預設為int則有32位,這裡預設為short型16位
10 (0000 0000 0000 1010)
2) 左移兩位,右補0(0000 0000 0010 1000)40
1) 先求出-10以補碼的形式表示為 10取反+1(1111 1111 1111 0101)+1 = 1111 1111 11110110
2) 將-10以補碼的形式表示左移兩位1111 1111 1101 1000
3) 將補碼算出來的結果轉換為原碼 取反+1 1000 0000 0010 0111+1 = 1000 0000 0010 1000 轉為十進位制為-40
左移一位就是原值乘2的1次方,左移兩位的就是原值乘2的2次方
1) 將參加運算的兩個數轉換為二進位制,若預設為int則有32位 10 (0000 0000 0000 1010)
2) 右移兩位,將各二進位制位全部向右移動,對於正數相當於在左邊補0 (0000 0000 0000 0010) 2
1) 先求出-10以補碼的形式表示為 10取反+1(1111 1111 1111 0101)+1 = 1111 1111 1111 0110
2) 將-10以補碼的形式表示右移兩位1111 1111 1111 1101 左邊補1
3) 轉換為原碼符號位依然為1(負數) 1000 0000 0000 0011 -3
右移一位的結果就是原值除2的1次方 結果向下取整
1|0 = 1,1|1=1,0|0=0
相同值為0,不同值為1,異或支援交換律和結合律
不引用第三個編碼交換a,b的值。
a = a ^ b (1)
b = a ^ b (2)
a = a ^ b (3)
將(1)代入(2)中得
b = (a ^ b) ^ b = a ^ ( b ^ b) = a ^ 0 = a
將(2)代入(3)
同理 a = (a ^ b) ^ a= b ^ 0=b
找出一組整型資料,這一組資料中只有乙個數隻出現了一次,其他的都出現了兩次。
假設一組整型資料為 a b c a c,將這一組資料全部異或得 a ^ b ^ c ^ a ^ c 使用結合律得 b^ (a ^ a) ^ (c ^ c) = b ^ 0 ^0 = b
有錯誤歡迎指出,謝謝
位運算(與 或 異或 取反 右移 左移)
1 按位與 對兩個數進行操作,然後返回乙個新的數,這個數的每個位都需要兩個輸入數的同一位都為1時才為1,如下圖 a b 結果為 12,二進位制為 0000 1100 2 按位或 比較兩個數,然後返回乙個新的數,這個數的每一位設定1的條件是兩個輸入數的同一位都不為0 即任意乙個為1,或都為1 如下圖 ...
C語言位運算子 與 或 異或 取反 左移和右移
位運算是指按二進位制進行的運算。在系統軟體中,常常需要處理二進位制位的問題。c語言提供了6個位操作運算子。這些運算子只能用於整型運算元,即只能用於帶符號或無符號的char,short,int與long型別。c語言提供的位運算子列表 運算子 含義 描述 按位與 如果兩個相應的二進位制位都為1,則該位的...
C語言位運算子 與 或 異或 取反 左移和右移
語言位運算子 與 或 異或 取反 左移和右移 位運算是指按二進位制進行的運算。在系統軟體中,常常需要處理二進位制位的問題。c語言提供了6個位操作運算子。這些運算子只能用於整型運算元,即只能用於帶符號或無符號的char,short,int與long型別。c語言提供的位運算子列表 運算子 含義 描述 按...