進制轉換
任意進制到十進制的轉換
公式:系數*基數的權次冪相加
-
系數:每一【位】上的數
-
奇數:幾進制
-
權:從數值的右側,從0開始,逐個+1
十進制到任意進制的轉換
公式:除基取余
使用源數據,不斷地除以基數得到余數,直到商為0,再將余數倒着拼起來。
快速進制轉換法
二進制轉十進制
- 8421碼(BCD碼Binary-Coded Decimal)
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
---|
對應1位相加即可得到十進制
二進制轉八進制
將三個二進制看作一組,再進行轉換
例:111100:最終轉換為八進制結果為0D74
二進制轉十六進制
將四個二進制看作一組,再進行轉換
例:00111100,轉換為16進制:0X3C
二進制的原碼、補碼、反碼
原碼:
二進制定點表示法,最高位為符號位,0表示正,1表示負,其余位表示數值的大小。
反碼:
正碼的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,符號位除外。
補碼:
正數的補碼與其原碼相同;負數的補碼是在其反碼的末位+1。
例:
-7
原碼:1 0000111
反碼:1 1111000
補碼:1 1111001
位運算
位運算是對於二進制來說的運算
0表示false,1表示true
-
位與(&):全都為true時才為true
-
位或(|):有一個為true時就為true
-
位異或(^):相同為false,不同為true
-
取反(~):全部取反
位移運算符
<<:有符號左移運算:二進制位向左移動,左邊符號位丟棄,右邊補齊0。
向左移動幾位,就是乘以2的幾次冪
>>:有符號右移運算:二進制位向右移動,左側用符號位補齊,右側最后一位丟棄
向右移動幾位,就是除以2的幾次冪
>>>:無符號右移運算符:無論符號位是正數還是負數,都用0進行補位
一個數被同一個數異或兩次,不會發生變化