十进制与二进制小数转换

乘2取整法(十进制小数 → 二进制)

将十进制纯小数转换为二进制小数的方法称为乘2取整法

  1. 将小数乘以2
  2. 取整数部分作为二进制位(0或1)
  3. 将剩余的小数部分重复步骤1-2
  4. 直到小数部分为0或达到所需精度

示例:0.625 → 二进制

0.625 × 2 = 1.25 → 整数部分 1(最高位)
0.25  × 2 = 0.50 → 整数部分 0
0.50  × 2 = 1.00 → 整数部分 1(最低位)

结果:

验证:

示例:0.1 → 二进制(循环小数)

0.1 × 2 = 0.2 → 0
0.2 × 2 = 0.4 → 0
0.4 × 2 = 0.8 → 0
0.8 × 2 = 1.6 → 1
0.6 × 2 = 1.2 → 1
0.2 × 2 = 0.4 → 0  ← 开始循环
...

结果:(无限循环小数)

二进制小数十进制

例如:

重要的启示

十进制小数不一定能精确表示为二进制

这是一个非常重要的计算机科学知识点:

  • 分母只含质因数2的十进制小数才能用有限位二进制小数精确表示

    • (分母为2)
    • (分母为4 =
    • (分母为4)
  • 分母含其它质因数的十进制小数会变成二进制无限循环小数

    • ,分母含质因数5,无法用有限二进制小数表示
    • 同理

实际影响

  • 计算机中浮点数无法精确表示 等常见十进制小数
  • 这就是为什么 0.1 + 0.2 != 0.3(在二进制浮点数运算中)
  • 金融计算应避免使用二进制浮点数(使用定点数或十进制浮点数)

相关笔记

链接到