dong-frank的博客

第三讲 数据的机器级表示

字数统计: 472阅读时长: 1 min
2025/02/18

第三讲 数据的机器级表示

信息的二进制编码

在冯·诺依曼结构中,所有信息(代码和数据)都采用二进制编码

采用二进制的原因:

  1. 多种物理器件可以表示两种稳定的状态,用于表示0和1
  2. 二进制的编码和运算规则简单
  3. 1和0可以对应逻辑命题中的“真”和“假”

整数的二进制表示

采用补码表示法

100…000 ~ 111…111:表示的值由2^(k-1)2^k-1变为-2^(k-1)-1

真值为原来的无符号数对应的真值减去2^k(取反加1的由来

−2^𝑛−1 ≤ 𝑋 ≤2^𝑛−1 −1

浮点数的二进制表示

分为规格化数和非规格化数

规格化数
1.bb…b * 2^E

  • 尾数(S)的第1位总是1,不需要存于尾数字段中(默认省略)
  • 阶码(E)的真实值加偏移量(127)后,再存入阶码字段中(移码)
  • 底(B)默认为2

负数范围: - (2-2^-23) * 2^128 到 -1 * 2^-127
正数范围: 1 * 2^-127 到 (2-2^-23) * 2^128

非规格化数处理了规格化数中接近于0的那部分
当结果的阶值太小时,通过右移进行非规格化;每次右移阶值增,直到阶值落在可表示范围内

IEEE754标准

  • 正无穷大: 阶码全1, 尾数全0
  • NaN: 阶码全1, 尾数不为全0

舍入: 当数值表示浮点格式时,可能需要用靠近真值的浮点数替代

  • 就近舍入:数值被舍入成最近的可表示的数
  • 朝+∞舍入:数值朝正无穷大方向向上舍入
  • 朝−∞舍入:数值朝负无穷大方向向下舍入
  • 朝0 舍入:数值朝0 舍入

二进制编码的十进制数表示

NBCD码
正: 1100
负: 1101

易错题目

alt text
alt text

CATALOG
  1. 1. 第三讲 数据的机器级表示
    1. 1.1. 信息的二进制编码
    2. 1.2. 整数的二进制表示
    3. 1.3. 浮点数的二进制表示
    4. 1.4. 二进制编码的十进制数表示
    5. 1.5. 易错题目