Skip to content

2.2 机器数的定点与浮点表示

本节是第二章的绝对重点,核心在于理解定点数和浮点数的表示方法、范围、精度,特别是IEEE 754浮点数标准,是考试的重中之重。

基础逻辑与核心概念

1. 定点表示法 (Fixed-point)

  • 定义:小数点的位置固定不变。计算机中通常不显式存储小数点。
  • 两种形式
    • 定点小数:小数点隐含在符号位之后、数值位之前。表示范围为 (1,1)
      • 原码表示范围:(12n)x12n
      • 补码表示范围:1x12n (可以表示-1,但不能表示+1)
    • 定点整数:小数点隐含在数值位之后。
      • 原码表示范围:(2n1)x2n1
      • 补码表示范围:2nx2n1

易考点:定点数的表示范围是常考题型,特别是补码的非对称范围。

2. 浮点表示法 (Floating-point)

  • 目的:在有限的位数内,扩大数的表示范围。
  • 格式:一个浮点数 N 可以表示为: N=M×rE
    • M (Mantissa):尾数,决定了数的精度。通常是定点小数。
    • E (Exponent):阶码,决定了数的范围。通常是定点整数。
    • r (Radix):基数,通常是2,并且是隐含的。

3. 规格化浮点数

  • 目的:为了保证浮点数表示的唯一性,并尽可能保留有效位数,提高精度。

  • 规则:调整阶码的大小,使尾数的绝对值保持在特定范围内。

    • 基数为2时
      • 原码:要求尾数最高数值位为1,即 12|M|<1
      • 补码
        • 正数:尾数形式为 0.1xxxx...
        • 负数:尾数形式为 1.0xxxx...
        • 统一规则:符号位与最高数值位不同。
  • 操作

    • 左规 (Left Shift):当尾数绝对值小于 12 时,尾数左移一位,阶码减1,直到规格化。
    • 右规 (Right Shift):当尾数运算发生溢出时(如 01.xxxx10.xxxx),尾数右移一位,阶码加1。

4. 阶码的移码表示

  • 目的:便于浮点数的大小比较和对阶操作。
  • 定义:将真值加上一个固定的偏置值 (bias)。 [E]=E+bias 通常,如果阶码有 k 位,偏置值取 2k1
  • 特点
    • 移码的最高位表示符号,1为正,0为负,与原码、补码相反。
    • 移码的大小直接反映了真值的大小,可以直接按无符号数规则比较大小。
    • 移码和补码的关系:符号位相反,其余位相同。

5. IEEE 754 标准 (核心难点与高频考点)

这是现代计算机通用的浮点数标准,必须熟练掌握。

  • 格式V=(1)S×M×2E

    • S (Sign):符号位,1位。
    • E (Exponent):阶码,用移码表示,但偏置值与标准移码不同。
    • M (Mantissa):尾数,用原码表示,且使用隐藏位技术。
  • 两种常见格式

    • 短浮点数 (Single-precision, 32位)
      • 1位符号位 (S)
      • 8位阶码 (E):偏置值为 127。阶码真值 = E - 127。
      • 23位尾数 (M)
      • 真值表示:V=(1)S×(1.M)×2E127 (注意隐藏的整数1)
    • 长浮点数 (Double-precision, 64位)
      • 1位符号位 (S)
      • 11位阶码 (E):偏置值为 1023。阶码真值 = E - 1023。
      • 52位尾数 (M)
  • 转换步骤 (十进制转IEEE 754)

    1. 将十进制数转为二进制。
    2. 移动小数点,进行规格化,形式为 ±1.xxxx...×2e
    3. 确定S:正数为0,负数为1。
    4. 计算阶码EE=e+bias (短浮点bias=127,长浮点bias=1023)。
    5. 获取尾数M:取规格化后二进制小数部分,不足位在末尾补0。
  • 特殊值

    • 阶码 E 全为 0
      • 尾数 M 全为 0:表示 ±0
      • 尾数 M 不为 0:表示非规格化数
    • 阶码 E 全为 1
      • 尾数 M 全为 0:表示 ± (无穷大)。
      • 尾数 M 不为 0:表示 NaN (Not a Number)。

难点与考点

  • 习题通常要求进行十进制与IEEE 754格式之间的相互转换。
  • 要特别注意隐藏位 1 的存在,以及阶码的偏置值不是 2k1 而是 2k11
  • 对特殊值的判断和表示也是考查点。