1. 程式人生 > >對位法轉換為2進位制 & 與運算、| 或運算、^異或運算、位運算

對位法轉換為2進位制 & 與運算、| 或運算、^異或運算、位運算

2進位制是轉換的媒介

10進位制對位法 128 64 32 16 8 4 2 1
8進位制對位法 4 2 1 4 2 1 4 2 1 4 2 1 4 2 1 4 2 1 4 2 1 4 2 1
16進位制對位法 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1
10進位制
低八位:2048 1024 512 256 128 64 32 16
高四位:128 64 32 16
低四位:8 4 2 1
16進位制
10-A 11-B 12-C 13-D 14-E 15-F

eg. 十進位制數字:272

10進位制對位法 256 128 64 32 16 8 4 2 1
2進位制結果 1 0 0 0 1 0 0 0 0
8進位制對位法 4 2 1 4 2 1 4 2 1 4 2 1 4 2 1 4 2 1 4 2 1 4 2 1 4 2 1
2進位制結果 1 0 0 0 1 0 0 0 0
8進位制結果 4 2 0
16進位制對位法 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1
2進位制結果 0 0 0 1 0 0 0 1 0 0 0 0
16進位制結果 1 1 0

2: 100010000;8: 420; 16:110

eg. 十進位制數字:147

10進位制對位法 256 128 64 32 16 8 4 2 1
2進位制結果 0 1 0 0 1 0 0 1 1
8進位制對位法 4 2 1 4 2 1 4 2 1 4 2 1 4 2 1 4 2 1 4 2 1 4 2 1 4 2 1
2進位制結果 0 1 0 0 1 0 0 1 1
8進位制結果 2 2 3
16進位制對位法 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1
2進位制結果 1 0 0 1 0 0 1 1
16進位制結果 9 3

2: 10010011; 8: 223 ;16:93

eg. 16進位制數字:F7

16進位制對位法 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1
2進位制結果 1 1 1 1 0 1 1 1
10進位制對位法 128 64 32 16 8 4 2 1
2進位制結果 1 1 1 1 0 1 1 1
10進位制結果 255
8進位制對位法 4 2 1 4 2 1 4 2 1 4 2 1 4 2 1 4 2 1 4 2 1 4 2 1
2進位制結果 0 1 1 1 1 0 1 1 1
8進位制結果 7 6 7

2: 11110111; 8: 367 ;16:247

邏輯運算子
& 與運算:同 1 為 1 ,否則為 0 
| 或運算:有 1 為 1,否則為 0 
^異或運算:相同為 1 ,否則為 0
<<左移運算:按照2進位制向左移動兩位
>>右移運算:按照2進位制向右移動兩位
運算 結果
272 & 147 16
272 | 147 403
272 ^ 147 387
35>>2 8
35<<2 140

二進位制的最高位定義為符號位,最高位0表示正數,1 表示複數。
機器數:連同符號位一起數值化了的值
真值:機器數代表的真實的數值
數值位:真值的絕對值

  正數二進位制,原碼、補碼、反碼都是同一個
  複數二進位制,補碼 = 反碼 + 1
負數的位運算 -35>>2
第一步 正數 35 的原碼 0010 0011
第二步 取-35 的原碼 1010 0011(真值:-010 0011)
第三步 取-35的反碼1101 1100
第四步 取-35的補碼1101 1101
第五步,移位 右移2位後的補碼 -35>>21111 0111
第六步 補碼減一獲得負數反碼1111 0110
第七步 將反碼調整會原碼,獲得位移後的負數原碼 1000 1001答案 -9
真值 原碼 反碼 補碼(最終的顯示)
-180 (-1011 0100) 1111 1111 1011 0100 1111 1111 0100 1011 1111 1111 0100 1100
-168(-1010 1000) 1111 1111 1010 1000 1111 1111 0101 0111 1111 1111 0101 1000