IEEE 754 双精度浮点数内部表示可视化展示

2022-03-14 07:38:04 +08:00
 shanyue

展示 IEEE754 下双精度浮点数的内部表示,对 0.1 + 0.2 !== 0.3 问题或者 Javascript 中的最大安全整数理解更加深入。

地址: https://devtool.tech/double-type

2888 次点击
所在节点    分享创造
16 条回复
ekidona
2022-03-14 08:51:27 +08:00
looks nice! 期待加入单精度和半精度。
adian
2022-03-14 09:14:29 +08:00
点赞
misaka19000
2022-03-14 09:27:41 +08:00
crayygy
2022-03-14 09:58:29 +08:00
这个工具很适合大学生学习的时候使用,非常棒了
ffgrinder
2022-03-14 16:24:01 +08:00
建议检查一下输入,可以输入空格,然后会打崩整个程序

Application error: a client-side exception has occurred (see the browser console for more information).

i.e. 输入“ 1”(半角空格,1 )网页会直接崩溃
shanyue
2022-03-14 22:17:14 +08:00
@ffgrinder 好的,感谢反馈
shanyue
2022-03-14 22:17:26 +08:00
@crayygy
ChaosesIb
2022-03-15 01:25:44 +08:00
这个工具不错,学计算机组成的时候我也找过这样的工具,可惜要么太简陋要么输出有问题。
提几个建议:
1. 允许单击比特位进行翻转,显示出对应浮点数
2. 修复下小数的转换,我测试时到 2^-100 以下就会转换错误了
3. 可以考虑列一个表格,把 NaN 、正负无穷、规格化、非规格化和双机器零这五种情况都列出来,理解起来会清晰很多。NaN 是阶码全 1 ,尾数非 0 ;非规格化数是阶码 0 ,尾数非 0
shanyue
2022-03-16 00:10:38 +08:00
@ChaosesIb 感谢建议,

1. 好,根据比特位换成浮点数
2. 极小数 2^-100 转换错误,是在哪里进行的对照,我也去参考下对应网站。
3. 好
ChaosesIb
2022-03-16 01:18:56 +08:00
@shanyue #9 这个不需要对照就能发现,输入 0.0000000000000000000000000000001 ,再往下加 0 转换出来的结果就不变了。double 即使不考虑非规格化数也可以达到 2^-1022 的精度,换算成十进制是约 308 位,不会这么短就表示不了的。你也可以在 JS 里用 1e-300 试下。
ChaosesIb
2022-03-16 01:20:43 +08:00
JS 我不清楚有没有强制转换成字
节数组的方法,Python 可以用 struct ,C 可以强转指针。
ChaosesIb
2022-03-16 01:22:14 +08:00
@ChaosesIb #11 V2EX 的审查真是诡异,断开字
节才能发出来.
leoleoasd
2022-03-16 14:38:46 +08:00
建议增加 NaN
shanyue
2022-03-16 16:36:51 +08:00
@ChaosesIb 确实,试了一下在 2^-100 往下有这个精度问题,我来查一查。在 js 中处理这个数,确实还是比较困难的
shanyue
2022-03-16 16:36:59 +08:00
@leoleoasd 好的
V1Eerie
2022-03-27 13:35:39 +08:00
www.implementsfreedom.tech/ieee754/ieee754.html
可以试试这个,支持 NaN 等预定义词在内存中的显示

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/840119

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX