跳转至

数制

计算机二进制系统知识结构总结


一、数制

  1. 基本定义

    • 二进制:基数为2,符号集为{0,1},权值为2的幂次(如101.11₂ = 1×2² + 0×2¹ + 1×2⁰ + 1×2⁻¹ + 1×2⁻²)。
    • 八进制:基数为8,符号集为{0-7},权值为8的幂次。
    • 十六进制:基数为16,符号集为{0-9, A-F},权值为16的幂次。
    • 十进制:基数为10,符号集为{0-9},权值为10的幂次。
  2. 权值表示示例

    • 十进制数123.12
      • 整数部分:1×10² + 2×10¹ + 3×10⁰
      • 小数部分:1×10⁻¹ + 2×10⁻²
    • 二进制数101.11
      • 整数部分:1×2² + 0×2¹ + 1×2⁰
      • 小数部分:1×2⁻¹ + 1×2⁻²

二、数制之间的相互转换

  1. 二进制 ↔ 十进制

    • 转十进制:按权展开求和(如1011.101₂ = 11.625₁₀)。
    • 转二进制
      • 整数部分:除2取余,逆序排列(如13 → 1101)。
      • 小数部分:乘2取整,顺序排列(如0.625 → 0.101)。
  2. 二进制 ↔ 八进制/十六进制

    • 转八进制:三位一组分组,每组转八进制(如110101₂ → 65₈)。
    • 转十六进制:四位一组分组,每组转十六进制(如1010111101₂ → 2BD₁₆)。
    • 逆向转换:每位八/十六进制数展开为3/4位二进制(如347₈ → 11100111₂)。

三、计算机整数存储:原码、反码、补码系统

  1. 编码系统对比

    特性 原码 反码 补码
    符号位 最高位(0正,1负) 同原码 同原码
    数值范围 -7~+7(4位) -7~+7(4位) -8~+7(4位)
    模数 \(2^n -1\) \(2^n\)
    ±0问题 存在±0(冗余) 存在±0(冗余) 唯一零
    硬件复杂度 高(需加减法器) 中(需循环进位) 低(仅需加法器)
  2. 模运算核心

    • 补码设计:基于模\(2^n\),将减法统一为加法(如-3 ≡ 5 mod 8,故3 - 5 ≡ 3 + 3 = 6 ≡ -2 mod 8)。
    • 反码缺陷:模\(2^n -1\)导致溢出需手动+1修正(如3 + 1 = 4 → 硬件截断为0,修正后为1)。
    • 补码优势:溢出直接截断即正确(如3 + 1 = 4 ≡ -4 mod 8,硬件结果100表示-4)。

四、计算机浮点数存储:IEEE 754标准(32位单精度)

  1. 结构组成

    部分 位数 说明
    符号位 1位 0正数,1负数。
    指数 8位 移码(Excess-127),实际指数 = E - 127。
    尾数 23位 隐含最高位1(规格化数)或0(非规格化数)。
  2. 规格化数

    • 条件:指数非全0/全1(\(1 ≤ E ≤ 254\))。
    • 公式\((-1)^S × 1.M₂ × 2^{E-127}\)
    • 范围\(≈1.175×10^{-38} \text{~} 3.4×10^{38}\)
  3. 非规格化数

    • 条件:指数全0(\(E=0\))。
    • 公式\((-1)^S × 0.M₂ × 2^{-126}\)
    • 作用:填补接近零的数值间隙(最小正数≈\(1.4×10^{-45}\))。
  4. 特殊值

    • ±0:指数和尾数全0。
    • ±∞:指数全1且尾数全0(如1.0/0.0)。
    • NaN:指数全1且尾数非0(如0/0)。
  5. 移码(Excess-127)逻辑

    • 偏移目的:将指数范围从-126~+127映射为无符号数1~254,避免负数存储。
    • 比较优势:直接对比存储值即可判断指数大小(如130 > 120对应实际指数3 > -7)。

总结

  1. 数制:二进制为核心,八/十六进制为便捷分组表示。
  2. 转换:权值展开与分组法是核心,适用于整数与小数部分的灵活转换,并支持高效的多进制互操作。
  3. 整数存储:补码通过模\(2^n\)消除冗余,统一运算逻辑,成为现代标准。
  4. 浮点存储:IEEE 754通过移码、隐含位和非规格化数,平衡精度与范围,支持科学计算需求。