0%

计算机中的数据表示

数据编码

数值数据的编码

  • 数据

    • 分类

      • 根据小数点

        • 定点数

          • 定点整数(纯整数)

            • 符号位
            • 数值位
            • 小数点位
            • 编码表示范围
          • 定点小数

            • 符号位
            • 数值位
            • 小数点位
            • 编码表示范围
        • 浮点数

          • 数符
          • 阶符
          • 阶码
          • 尾数
      • 根据符号

        • 无符号数
        • 有符号数
    • 进制转换

      • 整数部分
      • 小数部分不断×2取整数部分做尾数直到小数部分为0
  • 编码

    • 原码

      • 符号位

        • 最高位

          • 1

          • 0

      • 数值0

        • 两种表示
      • 原码和真值的转换

        • 把符号位改成﹢或-
      • 优劣

        • 优势

          • 简单直观
          • 转换容易
        • 劣势

          • 0的表示不唯一

          • 加减复杂

          • 乘除简单

            • 真值相乘判断正负
      • n位源码的表示范围

        • 整数
        • 纯小数
    • 补码

      • 作用

        • 把减法变成加法
      • 整数补码

          • 正数的补码是其本身

          • 负数的补码计算(以-35为例)

            • 将+35原码表示,所有位取反,最低位加1
            • 将-35原码表示,除了符号位所有位取反,最低位加1
            • 将+35原码表示,从低位向高位,找到第一个1不变,之后全部取反
        • 表示范围

          • 最大值和原码最大值相同

          • 最小值比原码最小值小1

            • 补码里0的表示只有一种
      • 小数补码

          • 和整数补码有相同的计算方法
        • 表示范围

          • 最大值和原码最大值相同
          • 最小值可以取到边界值-1
    • 反码

      • 求补码的过渡

      • 取值

        • 正数不变
        • 负数除了符号位所有位按位取反
      • 表示范围

        • 和原码一样
    • 移码

      • 数值部分和补码相同
      • 符号部分和补码相反
    • 求补运算

      • 所有位按位取反,末位加1
    • 算数左移/右移

      • 左移

        • 最高位移除,最低位补0
      • 右移

        • 最高位不变,最低位移除

数据的浮点表示

  • 浮点数表示法

    • 概念

      • 类似科学计数法
    • 组成

      • 尾数(用补码或原码表示)

        • 数值部分
        • 数符部分
      • 基数(一般为2,不表示)

      • 阶码(用移码表示)

        • 数值部分
        • 数符部分
  • 浮点数所表示的数据范围

    • 浮点数分类

      • 非规格化浮点数

      • 规格化浮点数

        • 将尾数的绝对值限定在某个范围内
        • 规格化浮点数的第一位数值位和数符位必须相反
        • 范围
        • 例题
    • 规格化

      • 左规
      • 右规
    • 溢出

      • 上溢

      • 下溢

检错与纠错编码

  • 奇偶校验码

    • 概念

      • 事先约定好用奇或偶校验
      • 补一位0或1使其有奇数或偶数个1
    • 分类

      • 水平奇偶校验

      • 垂直奇偶校验

      • 水平垂直奇偶校验

        • 水平+垂直
  • 海明码

    • 概念

      • 具有一位纠错能力的编码
    • 编码距离

  • 循环冗余校验码CRC

    • 概念

      • 做除法运算除尽则编码正确否则余数指出错误位置
    • 做法

      • 获得CRC码

        • 将有效信息左移k位(k=生成多项式位数-1)
        • 做除法运算得到余数补到有效信息后面得到CRC码
      • 解码

        • 用CRC码对生成多项式做除法运算
        • 余数为出错位置(从1开始从右向左数)