計算機系統基礎知識02
數據表示
例如,十進制數1234.56,其數值可計算如下:
1234.56 = 1 * 10^3 + 2 * 10^2 + 3 * 10^1 + 4 * 10^0 + 5 * 10^-1 + 6 * 10^-2
例如二進制數10100.01B的值可計算如下:
10100.01B = 1 * 2^4 + 1 * 2^2 + 1 * 2^-2 = 20.25
例如十六進制數8ABH的值可計算如下:
8ABH = 8 * 16^2 + 10 * 16^1 + 11 * 16^0
十進制轉二進制
訣竅:使用‘除二取余’ 法,將余數從下往上排列
2 86 余 0
2 43 余 1
2 21 余 1
2 10 余 0
2 5 余 1
2 2 余 0
1
得到1010110
二進制轉八進制
訣竅:從右開始,每三位為一組,不夠三位的補0即可。每組按8421 權展開求和,最終得到八位進制數
11101001 = 351
8 4 2 1
0 1 1 -> 3
1 0 1 -> 5
0 0 1 -> 1
二進制轉十六進制
訣竅:從右開始,每四位為一組,不夠三位的補0即可。每組按8421 權展開求和,最終得到十六位進制數
11101001 = E9
8 4 2 1
1 1 1 0 -> E
1 0 0 1 -> 9
1 -1 1-1 最左邊的是位數是符號位,0表示正數,1表示負數。
原碼 0000 00001 1000 0001 1000 0010 1-1運算是兩個數的二進制相加運算,同1相加進1位
反碼 0000 00001 1111 1110 1111 1111 正數原碼,反碼,補碼一致。負數的反碼是原碼除符號位不變,其余取反的結果。
補碼 0000 00001 1111 1111 0000 0000 負數反碼是 反碼基礎上 末位補1.
移碼 1000 00001 0111 1111 0000 0000 正數、負數的移碼是補碼的基礎上,符號位取反。(移除符號位)
補碼是最適合進行數字的加減運算的數字編碼
移碼只用於表示浮點數的階碼,所以只用於整數
計算機系統基礎知識02