二进制小数转换器

将二进制小数转换为十进制,将十进制小数转换为二进制,并提供分步说明。

选择转换方向,输入数值,即可立即获得结果并查看算法说明。

二进制小数转换器
将二进制小数转换为十进制,将十进制小数转换为二进制,并提供分步说明。

输入一个二进制小数(仅含 0 和 1,并用小数点分隔),得到精确的十进制等值。

关于二进制小数转换器

二进制小数通过使用二的负次幂作为位值,把二进制整数扩展到非整数数量的表示范围。就像十进制把小数点右侧的位置依次表示为十分位 (10⁻¹)、百分位 (10⁻²)、千分位 (10⁻³) 等一样,二进制把这些位置表示为二分之一 (2⁻¹ = 0.5)、四分之一 (2⁻² = 0.25)、八分之一 (2⁻³ = 0.125)、十六分之一 (2⁻⁴ = 0.0625) 等。二进制点右侧的每一位都代表这些递减的二的幂之一。 把二进制小数转换为十进制很直接。先在二进制点处分开数字。整数部分按标准方法转换:最右侧位是 2⁰,下一位是 2¹,依此向左递增。对于小数部分,二进制点后的最左位乘以 2⁻¹,下一位乘以 2⁻²,之后每一位依次乘以连续的负次幂。把所有贡献相加即可得到精确的十进制值。例如,二进制 101.101 等于 (1×4) + (0×2) + (1×1) + (1×0.5) + (0×0.25) + (1×0.125) = 5 + 0.5 + 0.125 = 5.625。 把十进制小数转换为二进制需要两个独立过程。整数部分通过反复除以 2 并记录余数来转换。小数部分通过反复乘以 2 来转换:将小数部分乘以 2,记录结果的整数部分(0 或 1)作为下一位二进制数字,然后继续处理剩余的小数部分。重复此过程,直到小数部分变为零,或达到所需精度。以 5.625 为例:整数 5 = 101₂;小数 0.625 × 2 = 1.25 → 位 1;0.25 × 2 = 0.5 → 位 0;0.5 × 2 = 1.0 → 位 1;小数归零,因此结果为 101.101₂。 需要理解的关键点是,并非所有十进制小数都有有限的二进制表示。正如 1/3 无法写成有限十进制一样,许多简单的十进制小数——包括 0.1、0.2 和 0.3——需要无限多的二进制位才能精确表示。这正是计算机中浮点舍入误差的根源。本转换器的精度设置控制要计算多少个小数二进制位;提高精度会得到更接近的近似值,但对于非终止小数可能永远不会产生精确结果。 二进制小数在计算中无处不在。IEEE 754 浮点算术标准把单精度和双精度数字编码为带有隐含前导 1 位和偏置指数的二进制小数。数字信号处理器把音频和图像数据表示为称为 Q 格式数的定点二进制小数。理解十进制值如何映射到二进制小数,对于编写底层代码、处理嵌入式系统或调试软件中的数值精度问题都至关重要。

二进制小数转换示例

这些常见转换展示了二进制转十进制和十进制转二进制的过程。

输入结果说明
101.101(二进制)5.625(十进制)1×4 + 0×2 + 1×1 + 1×0.5 + 0×0.25 + 1×0.125 = 5.625。这是一次无需近似的简洁转换。
1010.1101(二进制)10.8125(十进制)1×8 + 0×4 + 1×2 + 0×1 + 1×0.5 + 1×0.25 + 0×0.125 + 1×0.0625 = 10.8125。
5.625(十进制)101.101(二进制)整数 5 = 101₂。小数:0.625×2=1.25→1,0.25×2=0.5→0,0.5×2=1.0→1。结果 101.101₂ 是精确的。
3.375(十进制)11.011(二进制)整数 3 = 11₂。小数:0.375×2=0.75→0,0.75×2=1.5→1,0.5×2=1.0→1。用 3 个小数位即可精确表示。

如何使用二进制小数转换器

  1. 选择转换方向:选择“二进制 → 十进制”可将二进制小数转换为十进制数;选择“十进制 → 二进制”则进行反向转换。
  2. 在输入框中输入数值。二进制输入只能使用 0 和 1,并且只能有一个小数点(例如 101.101)。十进制输入可输入任意正数(例如 5.625)。
  3. 如果将十进制转换为二进制,请设置小数精度,以控制二进制点后计算多少位(默认 8 位)。
  4. 点击“转换”。结果会立即显示,并清楚展示对应的十进制或二进制值。
  5. 点击“重置”清空所有字段并开始新的转换。

二进制小数转换器常见问题

为什么 0.1 不能用二进制精确表示?
因为十进制的 0.1 是 1/10,而 10 = 2 × 5。由于 5 不是 2 的幂,分数 1/10 需要无限多的二进制数字。这类似于 1/3 无法写成有限十进制。计算机会在固定宽度的浮点寄存器中存储一个接近的近似值,因此在许多编程语言中把 0.1 相加三次并不会得到精确的 0.3。
如何把十进制数的小数部分转换为二进制?
使用反复加倍法:将小数部分乘以 2,记录整数部分(0 或 1)作为下一位二进制位,然后继续处理剩余的小数部分。重复直到小数为零或已获得足够位数。对于 0.625:0.625×2=1.25 → 位 1;0.25×2=0.5 → 位 0;0.5×2=1.0 → 位 1,完成。结果:.101₂。
定点和浮点二进制小数有什么区别?
在定点表示中,二进制点位于预先确定的位置,因此整数位和小数位的数量是固定的。在浮点表示(如 IEEE 754)中,二进制点会“浮动”:单独的指数域会将有效数向左或向右移动,从而以非均匀精度为代价获得很宽的动态范围。定点更简单、更快;浮点在科学计算中更灵活。
要匹配给定的十进制精度需要多少个二进制位?
每增加一个二进制位,大约会增加 log₁₀(2) ≈ 0.301 个十进制数字的精度。要匹配 d 个十进制数字,大约需要 d / 0.301 ≈ 3.32 × d 位。例如,单精度 IEEE 754 使用 23 个小数位,可提供约 7 个十进制有效数字。
转换器能处理纯整数(没有小数点)吗?
可以。如果输入 1011(二进制)或 11(十进制)这样的整数,转换器会把它视为小数部分为零的数并正常转换。结果也不会包含小数组件。
将十进制转换为二进制时,精度设置有什么作用?
精度设置二进制点后最多计算多少位。更高精度能为非终止二进制小数提供更接近的近似值。如果小数在达到精度上限前终止,转换器会提前停止,结果是精确的。支持的最大精度为 32 位。