在二进制中表示分数,通常采用以下两种方法:
一、分数的分子分母分别转换为二进制
整数部分转换 将分数的分子(整数部分)转换为二进制,采用“除2取余,逆序排列”法。例如,将13转换为二进制:
$$
13 div 2 = 6 quad text{余} 1
6 div 2 = 3 quad text{余} 0
3 div 2 = 1 quad text{余} 1
1 div 2 = 0 quad text{余} 1
$$
逆序排列余数得到二进制数 1101
。
小数部分转换
将分数的分母(2的幂)转换为二进制,采用“按权展开”法。例如,将128转换为二进制:
$$
128 = 2^7 quad Rightarrow quad 10000000_2
$$
然后将分子除以分母,将结果转换为二进制小数。例如,将13/128转换为二进制:
$$
frac{13}{128} = frac{2^3 + 2^2 + 2^0}{2^7} = 2^{-4} + 2^{-5} + 2^{-7} = 0.0001101_2
$$
若分母不是2的幂,需通过补零扩展分母后再进行转换。
组合结果
将整数部分与小数部分用分数线分隔,得到最终结果。例如,$frac{13}{128}$的二进制表示为 0.0001101。
二、小数形式的转换(适用于非2的幂分母)
十进制小数转二进制
采用“乘2取整”法。例如,将0.32转换为二进制:
$$
begin{align*}
0.32 times 2 &= 0.64 quad text{取整} 0
0.64 times 2 &= 1.28 quad text{取整} 1
0.28 times 2 &= 0.56 quad text{取整} 0
0.56 times 2 &= 1.12 quad text{取整} 1
end{align*}
$$
结果为 0.0101100110011ldots(无限循环)。
注意事项
精度限制: 二进制浮点数(如IEEE-754标准)无法精确表示某些十进制分数(如0.1),会导致舍入误差。 分母为2的幂
通过上述方法,可将十进制分数转换为二进制分数形式。