计算机基础一(计算机的数制)

数制:人们在日常生活实践中,创造了多种表示数的方法,这些数的表示规则就被称为数制。

一、数制的分类

  • 十进制

    基数为10,即逢十进一。由 0、1、2、3、4、5、6、7、8、9 十个数字组成。

  • 二进制

    基数为2,即逢二进一。由 0、1 两个数字组成。
    二进制是计算机中使用的数制,即所有的数据信息在计算机内部都是以二进制的形式来表示和处理的。
    计算机中使用二进制是因为二进制具有:可行性、简易性、逻辑性、可靠性的特点。
    二进制的弊端在于数字冗长、不便阅读。因此在计算机文献中常以八进制和十六进制表示。

  • 八进制

    基数为8,即逢八进一。由 0、1、2、3、4、5、6、7 八个数字组成。

  • 十六进制

    基数为16,即逢十六进一。由 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 十六个符号组成。

  • 不同数制的表示方法

    因为不同数制的存在,所以在给出一个数值的时候需要指明该数是什么数制中的数。

    1. (1010)2、(1010)8、(1010)10、(1010)16
      分别表示二进制、八进制、十进制、十六进制中的数 1010
    2. 1010B、1010Q、1010D、1010H
      分别表示二进制、八进制、十进制、十六进制中的数 1010
    3. 0b1010、01010、1010、0x1010
      分别表示二进制、八进制、十进制、十六进制中的数 1010

二、各种数制间的转换

非十进制转十进制(位权展开)

系数 × 基数权重,即把各个非十进制的数按该数的基数(权)展开即可。

  1. 二进制数转换成十进制数
    (1011.101)2
    =1×23 + 0×22 + 1×21 + 1×20 + 1×2-1 + 0×2-2 +1×2-3
    =8+0+2+1+0.5+0+0.125
    =(11.625)10
  2. 八进制数转换成十进制数
    (345.67)8
    = 3×82 + 4×81 + 5×80 + 6×8-1 + 7×8-2
    = (229.234375)10
  3. 十六进制数转换成十进制数
    (ABC.2F)16= 10×162 + 11×161 + 12×160 + 2×16-1 + 15×16-2
    =(2748.18359375)10

十进制转其他进制(除基数取余)

整数部分除以基数取余数,将其小数部份乘以基数取整数。

  1. 十进制数转换成二进制数(整数部分采用“除二取余”法,小数部分采用“乘二取整”法)(8421码,快速转换)
    将(215.6875)10 转换成二进制数

    整数部分
    (215)10 = (11010111)2
    计算机基础一(计算机的数制)

    小数部分
    (0.6875)10 = (0.1011)2
    计算机基础一(计算机的数制)

    将整数和小数部分拼接:(215.6875)10 = (11010111.1011)2

  2. 十进制数转换成八进制数(整数部分采用“除八取余”法,小数部分采用“乘八取整”法)

  3. 十进制数转换成十六进制数(整数部分采用“除十六取余”法,小数部分采用“乘十六取整”法)

非十进制数之间的转换

  1. 二进制数与八进制数之间的转换

    每1位八进制数最大是(7)10,相当于3位二进制数,即(7)10 = (111)2,即八进制1位对应二进制3位。
    八进制数转换成二进制数法则是“1位拆3位”,即把1位八进制数写成对应的3位二进制数,然后按权连接。
    二进制数转换成八进制数法则是:“3位并1位”,即以小数点为基准,整数部分从右至左每3位一组,最高位不足3位时在前面添0以补足3位;小数部分从左至右,每3位一组,最低位不足3位时在尾后添0补足3位,然后将各组的3位二进制数按22、21、20权展开后相加,得到八进制数。

    将(2754.41)8转换成二进制数

    (2754.41)8 = (10111101100.100001)2计算机基础一(计算机的数制)

    将(1010111011.0010111)2转换为八进制数

    (1010111011.0010111)2 = (1273.134)8
    计算机基础一(计算机的数制)

  2. 二进制数与十六进制数之间的转换

    每1位十六进制数最大是(15)10,相当于4位二进制数,即(15)10 = (1111)2 ,即十六进制1位对应于二进制4位。
    十六进制数转换成二进制数的法则是“1位拆4位”,即把1位十六进制数写成对应的4位二进制数,然后按权连接。
    二进制数转换成十六进制数法则是:“4位并1位”,即以小数点为基准,整数部分从右至左每4位一组,不足4位时在前面添0补足;小数部分从左至右每4位一组,不足部分在尾后添0补足,然后将各组的4位二进制数按23、22、21、20权展开相加,得到十六进制数。

    将(5A0B.1E)16转换成二进制数

    (5A0B.1E)16 = (101101000001011.0001111)2
    计算机基础一(计算机的数制)

    将(1110100101.01101011)2 转换成十六进制数

    (1110100101.01101011)2 =(3A5.6B)16
    计算机基础一(计算机的数制)

  3. 八进制数与十六进制数之间的转换

    这两种数制之间的转换可以用二进制数或十进制数作为中间过渡,例如以十进制数作为中间过渡,先将八进制数转换成十进制数,再将十进制数转换成十六进制数,这样就将八进制数转换成十六进制数了,反之十六进制数转换成八进制数也是这样。