1、二進位制最高位是符號位(0代表正數,1代表負數)
2、正數的原碼、反碼、補碼都相同
3、負數的反碼是將原碼符號位不變,其他位取反。
4、負數的補碼是將反碼+1
5、0的原碼、補碼都是0
6、計算機中是依據補碼進行計算的。
7、練習:
1)、~2=?
例題說明:對2按位取反。由於2為正數,正數的原碼、補碼相等。所以只需要將補碼按位取反。
補碼:00000000 00000000 00000000 00000010
取反:11111111 11111111 11111111 11111101
由於取反後的結果為補碼,所以還需要根據結果計算出結果的原碼。
原碼:10000000 00000000 00000000 00000011
故~2 = -3;
2)、2&3 = ?
例題說明:分別對2和3按位與,由於2和3 都是正數,正數的原碼、補碼相等,所以兩個數與(兩位全為1,結果為1)的結果是:
2:00000000 00000000 00000000 00000010
3:00000000 00000000 00000000 00000011
?:00000000 00000000 00000000 00000010
由於與後的結果為補碼,所以還需要根據結果計算出結果的原碼。根據符號位可以判斷結果為正數,所以原碼=補碼。
故2&3 = 2
3)、-3^3 = ?
例題說明:將-3和3按位異或(兩位不同結果為1,否則為0)。
-3的補碼:11111111 11111111 11111111 11111101
3的補碼: 00000000 00000000 00000000 00000011
?的補碼:11111111 11111111 11111111 11111110
結果的原碼為:10000000 00000000 00000000 00000010
故-3^3 = -2
4)、4|5 = ?
例題說明:將4和5按位或(有1則為1,全0為0)
4的補碼:00000000 00000000 00000000 00000100
5的補碼:00000000 00000000 00000000 00000101
?的補碼:00000000 00000000 00000000 00000101
故4|5 = 5
位運算學習筆記
1.補碼 補碼是為了表示乙個負數的二進位制形式。其轉化方式是,先將負數當成正數,轉化成二進位制的形式,再將二進位制正數的各個位上取反,再加上 例如 5先求出5的二進位制數 0000 0000 0101 然後將各個位上0變1 1變0 1111 1111 1010 最後再加1 1111 1111 101...
位運算學習筆記
要明白位運算是在二進位制中的運算方式,所有其他進製的數在進行位運算時都要先轉化成二進位制數再進行運算。int 是 32位二進位制。有符號整型 正數 0 負數 1 1 00000.0001 1 10000.00011.按位與 只有當x,y都是1的時候,運算結果才是1,其餘情況都是0.1 1 1 1 0...
C語言位運算 學習筆記
位運算是指按二進位制位進行的運算,實際上就是直接對整數在記憶體中的二進位制位進行操作。二進位制通俗來說就是只有0和1兩個可用的數字來表示一切狀態,方便理解可以說成是一盞燈的開和關兩種狀態,狀態有何用?對計算機來說使用者輸入資料,然後顯示這個簡單的過程就需要人機互動,即使用者和計算機的溝通,也可以說是...