十进制与二进制小数转换
乘2取整法(十进制小数 → 二进制)
将十进制纯小数转换为二进制小数的方法称为乘2取整法:
- 将小数乘以2
- 取整数部分作为二进制位(0或1)
- 将剩余的小数部分重复步骤1-2
- 直到小数部分为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(在二进制浮点数运算中) - 金融计算应避免使用二进制浮点数(使用定点数或十进制浮点数)
相关笔记
链接到
- 上一个知识点:2.8 内存指针与字符串
- 下一个知识点:2.10 浮点数IEEE标准