数制与编码基础

正文索引 [隐藏]

数制与编码

  • 数制(进制)

    这里指的是进位计数值,注意:罗马计数制就不是进位计数制

    • 数的表示方法

      • 并列表示法(位置计数法)

      • 多项式表示法

      • 表示的时候除了十进制其他进制表示后用括号括起来然后右下的角标进制

      • 小数点的表示方法

      • 定点表示法:小数点的位置固定,一般约定在最高位之前,说人话就是只能表示整数或者纯小数(整数位为零的小数),所以需要选取比例因子转化一下,类似于科学记数法那样:

        img

      • 浮点表示法:可以直接表示各种小数,这个就是使用科学表示法进行的:

        img

        img

        • 字的概念:和处理器的长度有关,16 位的处理器字就是指 2 bytes

        • 表示浮点数的时候,需要将一个自称化为两部分,一部分表示阶码,另一部分表示尾数,而其最高位都是符号位

        img

      • 带符号数的代码表示(见编码)

    • 编码

      • 二进制编码

      • 原码:首位为符号位,后面接真值

        • 运算:先比较符号,再比较绝对值大小
      • 反码:首位为符号位,若为负数后面接真值按位取反

        • 运算:直接加,若产生溢出加到末尾
      • 补码:首位为符号位,若为负数后面接真值按位取反再加1

        • 运算:直接加,产生的溢出抛弃
      • 备注:计算机在处理溢出的时候,其实是由一个区域专门存储溢出状态的

      • 十进制数的常用编码(代码)(需要记住)

      既具有二进制数的形式,又具有十进制数的特点,使用四位二进制数表示一位十进制数,这样就有 6 个位被空出,根据不同的空出规则,就有不同的编码,如下:

      • 8421 码(BCD 码)

        • 使用前 10 位,空出最后 6 位
      • 2421 码

        • 使用前 5 位、后 5 位,空出中间 6 位
      • 余 3 码(Excess-3)

        • 空出前 3 位、后 3 位,使用中间 10 位
      • 表示图

        img

        img

      • 可靠性编码

        目的:解决代码在形成或传输过程中可能发生的错误,提高系统安全性特征:不易出错、可及时发现错误和纠错

        • 格雷码(Gray Codes)
        • 任意两个相邻数的代码只有一位二进制数不同
        • 奇偶校验码(Parity Codes)
        • 海明校验码(Hamming Codes)
    • 数制转化

      当转化左右的两个进制都不熟悉的时候,利用十进制做 medium 运算两次

      • 多项式替代法(某进制转换为十进制比较方便)

      img

      img

      • 备注:在进行不熟悉进制的乘除法时,严格按照十进制的乘除法模式走

      • 基数乘除法

      img

      img

      img

      整数部分用基数除法,小数部分用基数乘法

      • 直接转换法:常用于二进制、八进制、十六进制间的相互转化

      img

      • 小数部分末尾的 0 不要省略!!!

      • 降幂法

      • 十进制转二进制

        img

        • 写出要转换的十进制数
        • 写出所有小于此数的二进制各位权值
        • 十进制数件某进制权值,权值有大到小
        • 若够减,相应位记为 1
        • 不够减,记为 0
        • 不断反复,直到为 0
      • 小数部分的精度问题

      img

      img

计算机中数字和字符的表示

  • 机器数的基本结构
  • 原码、反码、补码:转换规则、扩展规则、表数范围
  • 无符号整数用于表示地址,直接使用真值
  • BCD 码用于存储十进制数(使用二进制数直接表示十进制数字,效率不高
    • 压缩的(4 位)
    • 非压缩的(8 位)
  • ASCII 用于存储字符(记住常用的)