跳到主要内容

IEEE 754 浮点数转换器

API reference

将十进制数转换为精确的 IEEE 754 二进制表示(32 位单精度或 64 位双精度)。显示符号位 / 指数位 / 尾数位的排列、十六进制值以及完整的位分解,并可识别特殊值(NaN、无穷大、零、非规格化数)。

输入

支持普通十进制数,以及 Infinity、-Infinity 和 NaN。

输出

位分解
属性值
No data yet
这对您有帮助吗?

使用此工具的更多方式

REST API

curl -X POST https://api.iotools.cloud/v1/tool/ieee-754-floating-point-converter \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "decimal": "1",
    "precision": "32"
  }'

替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。

让 AI 代理执行

Use the IOTools `ieee-754-floating-point-converter` tool (IEEE 754 Floating Point Converter) on this input:

YOUR_INPUT_HERE

将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。

嵌入式小组件

<iframe
  src="https://iotools.cloud/embed/ieee-754-floating-point-converter/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="IEEE 754 浮点数转换器 — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。

每次 API/MCP 调用费用5 积分起
需要更多积分?查看定价

也可通过

使用指南

将任意十进制数转换为精确的 IEEE 754 二进制表示,直观看到计算机是如何存储它的。本工具展示 32 位单精度 和 64 位双精度 的符号位、指数位和尾数位排布,并提供十六进制编码以及逐位的完整分解。

什么是 IEEE 754?

IEEE 754 是几乎所有处理器和编程语言用来表示浮点数的标准。一个数字由三部分存储:

  • 符号位(1 位)—— 0 表示正数,1 表示负数。
  • 指数——带偏移的 2 的幂(单精度 8 位,双精度 11 位)。存储的值会加上一个偏移量(32 位为 127,64 位为 1023),使正指数和负指数都能放入无符号字段。
  • 尾数 / 小数部分——有效数字(单精度 23 位,双精度 52 位)。对于规格化数,隐含一个前导的 1.,因此免费多出一位精度。

其数值计算公式为 (-1)^符号 × 1.尾数 × 2^(指数 − 偏移量)。

如何使用本工具

  1. 输入一个十进制数——例如 3.14、-0、Infinity 或 NaN。
  2. 选择 单精度(32 位) 或 双精度(64 位)。
  3. 即时查看结果:以字段分隔的二进制字符串(符号 指数 尾数)、十六进制值,以及分解表,包括原始指数和经偏移修正后的指数、有效数字、检测到的数值类型,以及舍入后实际存储的精确值。

二进制输出按字段用空格分隔,便于区分三个部分,例如 0 10000000 10010001111010111000011。

特殊值

本工具可检测并标注标准中保留的边界情况:

  • ±0——所有指数位和尾数位均为零(正零和负零是不同的)。
  • 非规格化数(Subnormal)——指数为零而尾数非零,用于过小而无法规格化的数。
  • ±无穷大(Infinity)——指数为最大值而尾数为零。
  • NaN(非数)——指数为最大值而尾数非零。

为什么 0.1 + 0.2 不等于 0.3?

因为 0.1 无法在二进制中精确表示。用本工具转换 0.1,单精度的"实际存储值"会显示 0.10000000149011612——这是最接近的 32 位浮点数。分数 1/10 会变成无限循环的二进制展开(0.0001100110011...),因此必须舍入以适应尾数位。0.1、0.2 和 0.3 中的微小舍入误差不会相互抵消,求和结果便会与 0.3 相差一个极小的距离。这是二进制浮点运算固有的特性,而不是某种编程语言的缺陷。

为什么指数是"带偏移"的?

将指数存储为无符号值加上一个固定偏移量,可以让同样的位模式比较同时适用于浮点数排序,并避免为指数单独设置符号位。从原始指数中减去偏移量(127 或 1023),即可得到真正的 2 的幂——本工具会同时显示这两个值。

单精度与双精度

双精度使用 52 位尾数,而单精度为 23 位,因此能够精确表示多得多的十进制数字(约 15–17 位有效数字,而单精度约为 6–7 位)。JavaScript 中的数字以及大多数语言默认的浮点类型都是 64 位双精度。

隐私

所有转换都在你的浏览器本地完成,使用平台原生的 DataView/ArrayBuffer——与你的 CPU 所使用的完全相同的 IEEE 754 机制。你输入的任何内容都不会被发送到任何地方。

ieee-754floating-pointbinaryhexadecimalfloatdoublebitsconverter

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。