IEEE 754 浮点数转换
在线 IEEE 754 浮点数转换工具,支持单精度(32位)和双精度(64位),十进制、十六进制、二进制三格式互转,可视化展示符号位、指数位、尾数位拆解。
免费在线工具
Loading…
使用说明
- 选择精度:单精度 32 位或双精度 64 位。
- 从十进制输入:在「十进制」框输入数字(如 3.14、-0.1、1e-7),自动转换为十六进制和二进制位图。
- 从十六进制输入:在「十六进制」框输入内存值(如 0x40490FDB),自动反向解析为十进制值。
- 查看下方位图,各段位(符号位 / 指数位 / 尾数位)高亮显示,悬停可查看含义。
常见特殊值:输入 Infinity、-Infinity、NaN 可查看其 IEEE 754 表示。
功能介绍
- IEEE 754 标准实现:严格按照 IEEE 754-2008 标准进行单精度(32位)和双精度(64位)浮点数转换。
- 三种格式互转:十进制小数 ↔ 十六进制(内存表示)↔ 二进制位串,输入任意一种自动转换其余两种。
- 位级可视化:符号位、指数位、尾数位分段高亮,直观展示 IEEE 754 存储结构。
- 特殊值支持:正确处理 +0、-0、+∞、-∞、NaN、非规格化数等所有特殊情况。
- 精度对比:同时显示单精度与双精度结果,方便对比精度损失。
使用场景
嵌入式开发调试
嵌入式工程师查看寄存器中的浮点数内存值,快速解析十六进制到实际浮点数值。
编程语言学习
学习 C/C++/Java 浮点类型时,直观理解 float 与 double 的精度差异和内存表示。
数值精度排查
排查 0.1+0.2≠0.3 等浮点精度问题,查看具体的二进制近似误差来源。
图形着色器开发
GPU shader 开发时验证 half/float 精度的位级表示是否符合预期。
常见问题
为什么 0.1 + 0.2 ≠ 0.3?
这是 IEEE 754 浮点数的固有特性。0.1 和 0.2 在二进制下都是无限循环小数,存储时截断取近似值,两个近似值相加后的误差导致结果不精确等于 0.3。可用本工具输入 0.1 查看其实际二进制表示来直观理解。
单精度和双精度有什么区别?
单精度(float)32 位,约 7 位有效十进制数字,指数范围约 ±38;双精度(double)64 位,约 15-16 位有效数字,指数范围约 ±308。大多数编程语言默认使用双精度,嵌入式 / 图形领域常用单精度以节省内存。
什么是偏移码(Bias)?
IEEE 754 用偏移码存储指数,单精度偏移量为 127,双精度为 1023。实际指数 = 存储值 - 偏移量。例如存储值 127(0111 1111)表示实际指数 0,即 2^0=1。这样设计是为了让浮点数大小比较可以直接按整数位序进行。
NaN 有很多种,这里显示的是哪一种?
JavaScript 的 NaN 属于 Quiet NaN(静默 NaN),单精度十六进制为 0x7FC00000,双精度为 0x7FF8000000000000。Signaling NaN 在 JS 环境中会被自动转换为 Quiet NaN。