以下具体框架来自华中科技大学 谭志虎 老师,本人根据框架补充自己的一些体会和见解。仅当作学习笔记使用

Target:

image-20220114203640113

二、数据表示

  • 数字与编码

    • 进位制数及其相互转换

      • 二进制编码
        • 两种状态,容易与物理状态对应
        • 可以表示任何信息
          • 位数有限时不能表示循环小数
        • 运算规则简单,适合用布尔代数设计电路,制造成本低
      • 数制转换
        • 二进制转十进制
          • 加权展开
        • 十进制到二进制
          • 整数除二取余,先余为低
          • 小数乘2取整,先整为高
        • 二进制转八进制 或16进制
          • 从小数点向左右3/4位一分组
          • (10 011 100 . 01)_2= ( 234 . 2 )_8 (10011100.01)2=(234.2)8
          • (1001 1100 . 01)2 = ( 9C . 4 ){16} (10011100.01)2=(9C.4)16
    • 真值和机器数

      • 真值

        • “+”、 “-”表示符号的数据格式,是机器数代表的实际值
        • 用于数据输出
      • 机器数(码)

        • “0”或“1”表示的符号数值的数据格式
        • 用于计算机存储,运算
      • 常见机器码

        • 原码
          • 符号化的数值,“0”表示正数,“1”表示负数
          • 最高位符号位,其它是数的绝对值
          • 在数轴上的表示区间对称
          • 存在正零和负零两个零
          • 运算比较复杂,主要用于表示浮点数的尾码
        • 反码
          • 符号位与原码相同,表示范围也相同
          • 在数轴上的表示区间对称
          • 当真值为正数时,反码和原码相同
          • 当真值为负数时,数值部分要逐位取反
          • 主要用于求补
        • 补码
          • 数据表示建立在“模”的概念基础上,模的值即为符号位进位的权值。
            • 模2的补码
              • 定点小数模值为2
              • 定点整数模值为2^{n+1}2n+1
            • 模4的补码:变形补码
              • 定点小数模值为4
              • 定点整数模值为2^{n+2}2n+2
            • 其中n为数值位位数
          • 当真值为负数时,补码等于真值加上模
          • 在数轴上的表示区间不对称
            • 唯一的机器零(少一个)
            • 最左侧比原码、反码表示一个最小负数
          • 补码符号位可以直接参与加减运算,运算电路实现方便
          • 计算机中整数采用补码进行存储、表示和运算
        • 移码
          • 只用于表示整数,也称偏移码,真值+常量
          • 方便比较大小,数字越大,真值越大
          • *****移码和补码的符号位相反,数值位相同
            • ​ 为了确保所有码都为正,通常加上偏移量后二进制数为000….
              • 因此0也是唯一的
          • 用于表示浮点数的阶码
      • 机器码表示范围(只需记住补码公式,加模数)

        • 8274186f-11f0-4065-8723-aafe9a0220e4-329792

        • 补码机器零唯一,相比其他编码多表示一个绝对值最大的负数,小数为-1,整数为-2^{n}−2n

      • 机器码在数轴上的表示(对比理解

        • d971313c-94f7-483b-ad4f-a9f500063e43-329792
      • 机器码之间的转换

        • 利用编码特性直接转换
        • 转换为真值再转换(简单有效)
      • 考研真题

        • 真题1
          • b7fbcd57-4a03-4ab1-9f63-925f2db9dd36-329792
        • 真题2
          • 60c991b6-71e2-49fe-b03d-9e3cbc6c66d1-329792
        • 真题3
          • 9cdb97ba-d7cd-4f65-aa98-375101c72b0d-329792
    • 字符与字符串

      • ASCII码

        • 国际通用的字符码,7位表示128个字符
        • 实际占用1个字节,最高有效位MSB=0(二进制的最左边那位)
        • 33个控制字符;其余为可打印字符
        • 常见代码(了解)
          • 20H 开始是空格等可打印字符
          • 0 ~ 9 这 10 个数字是从30H 开始的一个连续区域
          • 大写英文字母是从 41H 开始的一个连续区域
          • 小写英文字母是从 61H 开始的一个连续区域
      • 汉字编码

        • 分类

          • 输入码: 汉字的输入
            • 拼音,五笔等
          • 机内码: 汉字的存储
            • GB2312、GBK、GB18030、Unicode、BIG5等标准
          • 字形码: 汉字的输出
        • GB2312(国标码)

          • 区位码

            • 矩阵形式,由4位十进制数构成,前2位区码,后2位位码
          • 汉字机内码:国标码 (16进制)+ 8080H

          • 汉字机内码:区位码(16进制)+A0A0H

          • 国标码:(区位码的十六进制表示)+2020H

            • 列:1、区号为20,位号为83
            • 2、将区位号2083转换为十六进制表示为1453H
            • 3、1453H+2020H=3473H,得到国标码3473H
            • 4、3473H+8080H=B4F3H,得到机内码为B4F3H
              • 区分ASCII码,MSB=1
              • GB2312汉字占用两个字节,有效位14位
      • 字符串

        • 小端模式:数据最高有效字节存放在地址单元中
        • 大端模式:数据最高有效字节存放在地址单元中
      • 从低地址到高地址逐个字符储存,以”\0“结束的字符序列

  • 数据表示

    • 定义
      • 将数据按照某种方式组织,以便机器硬件能直接识别和使用。
    • 关键问题
      • 数据表示的范围和精度
      • 数据存储和处理的代价
      • 软件的可移植性问题
    • 数据格式
      • 使用二进制编码表示实际数据的结构形式
  • 定点数的表示

    • 定点数概念
      • 小数点位置固定的数
    • 定点数分类
      • 有符号数无符号数
        • 机器码到底有无符号取决于输出形式
        • C语言中printf中%d输出,%u表示无符号
      • 定点整数和定点小数
        • 定点小数:小数点隐含在符号位之后,有效数值部分最高位之前
        • 定点整数:小数点在有效数值部分最低位之后
    • 溢出问题(运算章节继续深入)
      • 定点整数存在上溢问题(超出表示范围)
      • 定点小数存在精度溢出问题(超出表示精度)
        • 31f8028a-da18-4515-b8df-87d475ee79dc-329792