IEEE 754 浮点数转换器
将十进制数转换为精确的 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^(指数 − 偏移量)。
如何使用本工具
- 输入一个十进制数——例如
3.14、-0、Infinity或NaN。 - 选择 单精度(32 位) 或 双精度(64 位)。
- 即时查看结果:以字段分隔的二进制字符串(
符号 指数 尾数)、十六进制值,以及分解表,包括原始指数和经偏移修正后的指数、有效数字、检测到的数值类型,以及舍入后实际存储的精确值。
二进制输出按字段用空格分隔,便于区分三个部分,例如 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 机制。你输入的任何内容都不会被发送到任何地方。