十进制小数转二进制问题


我们知道,十进制小数转二进制的方法为“乘2取整,顺序排列”,下面看两个实例:

  1. 计算0.625的二进制表示
0.625 × 2 = 1.25 ...... 1
0.25  × 2 = 0.50 ...... 0
0.50  × 2 = 1.00 ...... 1
0.00

0.625 = (101) B

  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
0.4 × 2 = 0.8 ...... 0
0.8 × 2 = 1.6 ...... 1
0.6 × 2 = 1.2 ...... 1

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.1 = (1100 1100 1100 ......) B

可见有限长度的二进制并不能精确表示0.1,就像有限长度的十进制不能精确1/3。