第一章 计算机基础知识

第5节 数制转换

一、计算机的数制

  1. 十进制:每一位可取0~9这十个数码,计数的基数为10,超过9须用多位数来表示。
  2. 二进制:每一位可取0~1这2个数码,计数的基数为2,超过1须用多位数来表示。
  3. 八进制:每一位可取0~7这8个数码,计数的基数为8,超过7须用多位数来表示。
  4. 十六进制:每一位可取0~9,A,B,C,D,E,F这16个数码,计数的基数为16,超过F须用多位数来表示。
  5. :数制中某一位上的1所表示的数值的大小。例如,十进制123中,1的位权是100,2的位权是10,3的位权是1。

各进制转换的关系表

二、各种数制之间的转换

1. K进制转十进制

按权相加法展开成多项式,每项为该位数码与对应权的乘积,求和后得到十进制值。
公式:$ abcd.efg\ (K) = d \times K^0 + c \times K^1 + b \times K^2 + a \times K^3 + e \times K^{-1} + f \times K^{-2} + g \times K^{-3}\ (10) $
例:$1101.01(2) = 1 \times 2^0 + 0 \times 2^1 + 1 \times 2^2 + 1 \times 2^3 + 0 \times 2^{-1} + 1 \times 2^{-2} = 1 + 0 + 4 + 8 + 0 + 0.25 = 13.25(10) $

2. 十进制转K进制

  • 整数部分:倒除法,即除K取余直至商为0,倒序排列余数。
    例:$$172(10) = 10101100(2)$$

  • 小数部分:乘K取整法,即小数部分循环乘K直至为0,顺序取整数部分。
    例:$$0.625(10) = 0.101(2)$$

    0.625×2 = 1.25  ...取出整数1  
    0.25×2 = 0.5   ...取出整数0  
    0.5×2 = 1.0    ...取出整数1  
    

3. 二进制转八进制

  • 整数部分:从右向左,每3位二进制数转为1位八进制数。
  • 小数部分:从左向右,每3位二进制数转为1位八进制数。
    例:$$1111010101(2) = 1725(8)$$
    例:$$110110.1011(2) = 156.54(8)$$

4. 二进制转十六进制

  • 整数部分:从右向左,每4位二进制数转为1位十六进制数。
  • 小数部分:从左向右,每4位二进制数转为1位十六进制数。
    例:$$111101010101101(2) = 1EAD(16)$$
    例:$$111101001.10111(2) = 1E9.B8(16)$$