IEEE 754 浮点数转换
查看十进制数的单精度或双精度位表示,或把十六进制、二进制位模式还原为数值(每行一个)。
本地处理
文件只在当前浏览器处理;关闭或清空后不保留。
输入文本
输入或粘贴要处理的文本
调整设置
可调整方向、精度、十六进制字节序
开始处理
在本机浏览器中处理,可随时取消
工具介绍
查看十进制数在 IEEE 754 单精度(32 位)或双精度(64 位)下的存储形式,或者把十六进制、二进制位模式还原成数值。例如弄清 0.1 为什么无法精确表示,解析从传感器、串口或文件里读到的 4 字节浮点数,或者核对程序中 float 和 double 的取值。
每个数都会给出实际存储的数值、十六进制、按符号位、指数、尾数分组的二进制,以及符号和指数。十六进制可以按大端或小端书写。每行输入一个数,全部在浏览器中完成。
使用步骤
- 在“输入文本”中每行输入一个数,也可以点击“使用示例”。
- 选择“方向”:“十进制转位表示”或“位表示转十进制”。
- 选择“精度”:“单精度(32 位)”或“双精度(64 位)”;数据来自小端设备时,把“十六进制字节序”设为“小端”。
- 点击“运行”,在预览中查看每个数的结果,再下载为文本文件。
格式与限制
- 输入
- 文本
- 输出
- 纯文本
- 大小上限
- 1 MB
- 可调设置
- 方向(十进制转位表示、位表示转十进制);精度(单精度、双精度);十六进制字节序(大端、小端)
- 隐私
- 文件留在当前浏览器会话中,不上传文件字节。
- 费用
- 免费,无需注册
常见问题
为什么 0.1 转换后变成了 0.10000000149011612?
0.1 无法用二进制精确表示,只能存成最接近的值。单精度下最接近的是 0.10000000149011612(十六进制 3DCCCCCD);双精度更接近,显示为 0.1,十六进制是 3FB999999999999A。
大端和小端有什么影响?
只影响十六进制这一行,输入和输出都是如此。例如单精度的 1 按大端写作 3F800000,按小端写作 0000803F。二进制始终按最高位在前显示和读取。
位表示转十进制要输入什么格式?
单精度输入 8 个十六进制数字或 32 个二进制位,双精度输入 16 个十六进制数字或 64 个二进制位。可以带 0x 前缀,中间的空格和下划线会被忽略;位数不对时会报错。
能转换无穷大和 NaN 吗?
能。输入 inf、-inf、infinity 或 nan 即可,不区分大小写。超出单精度范围的数,例如 1e40,会变成 Infinity;-0 也会单独显示为 -0。
结果里的 exponent 是什么?
Binary 行用空格把符号位、指数位和尾数位分开;Sign 后面是符号位,exponent 是指数位减去偏移量(单精度 127,双精度 1023)后的值,例如 0.1 的 exponent 为 -4。
相关工具
进制转换
任意大小整数在 2 至 36 进制间转换(每行一个),可按 8 至 128 位补码处理有符号数。
原码、反码与补码
按 8、16、32 或 64 位计算每行十进制整数的原码、反码与补码。
字节进制与大小端转换
以字节为单位在十六进制、二进制、八进制、无符号或有符号十进制、Base64 与 UTF-8 文本之间转换,并可按 2、4、8 字节交换大小端字节序。
字符集编码与乱码修复
以十六进制查看文本在 UTF-8、GBK、GB18030、Big5、Shift_JIS 等字符集下的字节,把十六进制还原为文本,或修复按错误字符集读取造成的乱码。
文件转 Hex
把任意文件转换为十六进制:带偏移与 ASCII 预览的十六进制转储、纯十六进制或 C 语言字节数组。
编码与解码
Base64、Base64URL、URL、十六进制和 HTML 实体的编码与解码;编码不等于加密。