1.2 進制轉換


10 進制 -> r 進制

格式: (整數、小數)10 => 右下方的 10
1. 整數: 
    (1) 連除以 r, 直到商數為 0
    (2) 由下而上取餘數
2. 小數:
    (1) 將小數部分連乘以 r, 直到小數部分為 0
    (2) 由上而下取整數

Note: 電腦儲存長度有限,故結果會產生截尾誤差

  • 例 1: 10 -> r, (43.375)10 = ()2 = ()4 = ()8 = ()16
    1. 2 進制:

      = (101011.011)2

    2. 4 進制:

      = (223.12)4

    3. 16 進制:

      = (2B.6)16

Note:

  • 例 2: 下列何者無法以 2 進制精確表示法?
    => ( check: 將分數約分, 若分母不為 2 的冪次方則謂之)
    (A) 2/8 2^2
    (B) 3/16 2^4
    © 9 7/18 2^2
    (D) 2/5

    Ans: D

  • 例 3: (0.4)10 = (0.0110)2 => (0110 上方會加上長線為表示循環數)
    Sol:
    0.4 * 2 = 0.8
    0.8 * 2 = 1.6
    0.6 * 2 = 1.2
    0.2 * 2 = 0.4
    0.4 * 2 = X

  • 例 4: x = 10/3; y = x * 3; 問為何 y 不等於 10?
    Sol: 因為在第一個時間點已經發生截尾誤差

r 進制 -> 10 進制

格式: (Xn....X1 X0 . Y0 Y1...Ym)r
       |     |  |    |  |    |      =>(整數.小數)10
     r^n+..+r^1+r^0+r^-1+r^-2+r^-m   
  • 例: (B2.C)16 = (178.75)10
    Sol:
    = 11 * 16^1+2 * 16^0+12 * 16^-1
    = 176 + 2 + 12/16
    = 178.75

2 的冪次方系統互換

Case1: 2^0, 2^1, 2^2....2^n
    將 2 -> 4, 8, 16 進制
    將每 2 3 4 bits 為一單位作轉換

Case2: 4, 8, 16 -> 2 進制
    將一數值用 4 3 2 個 bits 表示之

Note:

  • 整數由右往左數, 不足左邊補 0

  • 小數由左往右數, 不足右邊補 0

  • 例 Case1:
    (001100100.011010)2
    = (1210.1222)4
    = (144.324)8
    = (64.6A)16

  • 例 Case2:
    (AB.2F)16 = (253.136)8
    (010101011.001011110)2

數值運算(+, -, *, /)

  • 例 1: (EACB)16 + (OAD2)16 = (172635)8
    Sol:

      Case2 => (001111010110011101)2
      Case1 => (1 7 2 6 3 5)8
    
  • 例 2: (12CA)16 + (OD9C)16 = (110232)4
    Sol:

      Case2 => (0000010100101110)2
      Case1 => (0 0 1 1 0 2 3 2)4
    
  • 例 3: (9)10 + (9)10 = (1010001)2
    Sol: (9)10 * (9)10 = (81)10 = (1010001)2

  • 例 4: (CB.A)16 -> (203.625)10
    Sol: CB.A = 16^1 * C + 16^0 * B + 16^-1 * A
    = 12 * 16 + 11 * 1 + 10 * 1/16
    = 192 + 11 + 5/8
    = (203.625)10