跳到正文
BCBinary Code Translator
菜单

浮点位模式分析

IEEE-754 浮点转换器

在十进制、精确二进制和十六进制之间转换 float32/float64,并拆分符号位、指数位和尾数字段。

转换由浏览器 DataView 按 IEEE-754 标准在本地执行。

示例

解码后的十进制

尚无结果

十六进制模式

尚无结果

符号位

尚无结果

指数位

尚无结果

尾数位

尚无结果

存储指数

尚无结果

去偏置指数

尚无结果

分类

尚无结果

IEEE-754 能揭示什么

IEEE-754 是 JavaScript、主流语言、处理器、文件格式和网络协议常用的二进制浮点标准。位模式由符号位、带偏置指数和尾数构成,因此能覆盖很大数量级,但有效二进制位有限,许多十进制小数不能被精确存储。

本工具不仅显示舍入后的十进制,还展示完整 32 位或 64 位模式,并能从精确二进制或十六进制反向解码。正负无穷、NaN、正零、负零和次正规数会依据原始字段正确分类。

使用方法

从可信的表示开始:应用中的十进制数,或文件、寄存器、数据包里的精确位模式。

  1. 选择 32 位单精度 float32 或 64 位双精度 float64。
  2. 选择十进制、精确二进制或精确十六进制输入。
  3. 二进制必须恰好 32/64 位,十六进制必须恰好 8/16 位;十进制支持指数形式、NaN、Infinity、-Infinity 和 -0。
  4. 点击“计算”,查看完整位模式和三个字段。
  5. float32 会先舍入到单精度,解码结果可能与输入的小数文本略有差异。

IEEE-754 已知示例

已知向量便于核对字段边界和特殊值。

输入 编码模式 说明
1.0 float32 3F800000 符号为 0,存储指数 127,尾数全 0。
-2.5 float32 C0200000 符号位为 1,正规数的有效数为 1.25,实际指数为 1。
-0 float32 80000000 指数和尾数为 0,仅符号位为 1。
Infinity float32 7F800000 指数全 1 且尾数为 0 表示正无穷。
NaN float32 7FC00000 示例 指数全 1 且尾数非 0 表示 NaN,具体载荷可不同。
最小正次正规 float32 00000001 指数为 0,仅最低尾数位为 1。

输入值与精确宽度

十进制支持可选符号、小数点和 e 指数,也支持 NaN、Infinity、-Infinity、Inf、-Inf 和带符号零。float32 会按单精度舍入,float64 使用 JavaScript 的双精度 Number。

二进制和十六进制直接表示存储位模式,不是数学上的二进制小数。可用空格或下划线分组,但清理后宽度必须精确。十六进制按常见大端显示顺序,最左侧包含符号位。

  • float32:1 位符号、8 位指数、23 位尾数。
  • float64:1 位符号、11 位指数、52 位尾数。
  • 二进制要求 32/64 位,十六进制要求 8/16 位。
  • 从位模式解码时会保留 NaN 载荷位。

编码原理

正规有限值形式为 (-1)ˢ × (1.尾数) × 2ᵉ,存储指数等于真实指数加偏置:float32 为 127,float64 为 1023。最高的 1 隐含不存储。

存储指数为 0 时,尾数全 0 表示带符号零,尾数非 0 表示次正规数,不使用隐含 1。指数全 1 时,尾数为 0 表示无穷,非 0 表示 NaN。

工具通过 DataView 读写标准位模式,并从原始字段分类,因此不会丢失 -0 或把 NaN 当作普通数值。

实际用途

仅看十进制结果无法解释浮点问题时,字段级视图很有价值。

调试精度误差

分析 0.1、累计计算或金额式小数为何出现微小偏差。

解析文件和协议

读取图形、科学数据、设备消息或抓包中的 32/64 位浮点字段。

核对测试向量

验证十六进制常量、序列化和字节序转换。

学习数值计算

观察正规数、次正规数、符号零、无穷和 NaN。

常见错误与边界

位模式本身精确,但描述它的十进制文本可能已经舍入。

期待十进制小数完全精确

多数十进制小数在二进制中无限循环,只能取最近可表示值。

混用 float32 与 float64

同一小数在两种精度下的位模式和有效位不同。

忽略负零

0 与 -0 在很多比较中相等,但符号位不同,并影响倒数等运算。

认为 NaN 只有一个模式

NaN 有多种载荷;输入位模式会保留,输入 NaN 文本则使用平台规范模式。

与其他数字工具的区别

IEEE-754 描述浮点存储,不是整数进制。

二进制补码

补码保存定宽整数;IEEE-754 有符号、指数、尾数和非有限值。

二进制计算器

二进制计算器执行精确整数算术,浮点运算会按有效位舍入。

进制转换器

普通进制转换保持数学整数,IEEE 十六进制需要拆字段才能得到浮点含义。

文本十六进制

文本工具把字节解释为 UTF-8,IEEE 工具把同样字节解释为浮点结构。

常见问题

为什么 float32 改变了输入的小数?

float32 只有约 24 个有效二进制位,会舍入到最近可表示模式。

尾数和 fraction 有什么区别?

存储字段是小数部分;正规数还带一个隐含前导 1,共同形成有效数。

如何判断次正规数?

存储指数全 0 且尾数非 0,即为次正规数。

为什么有两个零?

指数和尾数相同,符号位区分 +0 和 -0。

能保留自定义 NaN 载荷吗?

输入精确二进制或十六进制时可以;输入 NaN 文本会使用浏览器规范模式。

十六进制是否受机器字节序影响?

页面按常见大端位模式显示;读取内存字节时应先根据来源字节序排列。

相关工具

查看全部工具

Cookie 偏好设置

管理你的 Cookie 偏好。必要 Cookie 无法关闭。

必要 Cookie

必要

用于语言选择、隐私选择和网站基础功能,属于必需项。

Cookie: NEXT_LOCALE

分析 Cookie

可选的分析 Cookie 可帮助我们了解访问情况并改进网站。

Cookie: _ga, _gid, _gat, _clck, _clsk

广告 Cookie

可选的广告 Cookie 可能用于展示相关广告并衡量广告效果。

Cookie: __gads, _gcl_au, IDE