V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
shanyue
V2EX  ›  分享创造

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

  •  1
     
  •   shanyue · 2022-03-14 07:38:04 +08:00 · 2887 次点击
    这是一个创建于 980 天前的主题,其中的信息可能已经有所发展或是发生改变。
    image

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

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

    16 条回复    2022-03-27 13:35:39 +08:00
    ekidona
        1
    ekidona  
       2022-03-14 08:51:27 +08:00
    looks nice! 期待加入单精度和半精度。
    adian
        2
    adian  
       2022-03-14 09:14:29 +08:00
    点赞
    misaka19000
        3
    misaka19000  
       2022-03-14 09:27:41 +08:00
    crayygy
        4
    crayygy  
       2022-03-14 09:58:29 +08:00
    这个工具很适合大学生学习的时候使用,非常棒了
    ffgrinder
        5
    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
        6
    shanyue  
    OP
       2022-03-14 22:17:14 +08:00
    @ffgrinder 好的,感谢反馈
    shanyue
        7
    shanyue  
    OP
       2022-03-14 22:17:26 +08:00
    @crayygy
    ChaosesIb
        8
    ChaosesIb  
       2022-03-15 01:25:44 +08:00
    这个工具不错,学计算机组成的时候我也找过这样的工具,可惜要么太简陋要么输出有问题。
    提几个建议:
    1. 允许单击比特位进行翻转,显示出对应浮点数
    2. 修复下小数的转换,我测试时到 2^-100 以下就会转换错误了
    3. 可以考虑列一个表格,把 NaN 、正负无穷、规格化、非规格化和双机器零这五种情况都列出来,理解起来会清晰很多。NaN 是阶码全 1 ,尾数非 0 ;非规格化数是阶码 0 ,尾数非 0
    shanyue
        9
    shanyue  
    OP
       2022-03-16 00:10:38 +08:00
    @ChaosesIb 感谢建议,

    1. 好,根据比特位换成浮点数
    2. 极小数 2^-100 转换错误,是在哪里进行的对照,我也去参考下对应网站。
    3. 好
    ChaosesIb
        10
    ChaosesIb  
       2022-03-16 01:18:56 +08:00
    @shanyue #9 这个不需要对照就能发现,输入 0.0000000000000000000000000000001 ,再往下加 0 转换出来的结果就不变了。double 即使不考虑非规格化数也可以达到 2^-1022 的精度,换算成十进制是约 308 位,不会这么短就表示不了的。你也可以在 JS 里用 1e-300 试下。
    ChaosesIb
        11
    ChaosesIb  
       2022-03-16 01:20:43 +08:00
    JS 我不清楚有没有强制转换成字
    节数组的方法,Python 可以用 struct ,C 可以强转指针。
    ChaosesIb
        12
    ChaosesIb  
       2022-03-16 01:22:14 +08:00
    @ChaosesIb #11 V2EX 的审查真是诡异,断开字
    节才能发出来.
    leoleoasd
        13
    leoleoasd  
       2022-03-16 14:38:46 +08:00
    建议增加 NaN
    shanyue
        14
    shanyue  
    OP
       2022-03-16 16:36:51 +08:00
    @ChaosesIb 确实,试了一下在 2^-100 往下有这个精度问题,我来查一查。在 js 中处理这个数,确实还是比较困难的
    shanyue
        15
    shanyue  
    OP
       2022-03-16 16:36:59 +08:00
    @leoleoasd 好的
    V1Eerie
        16
    V1Eerie  
       2022-03-27 13:35:39 +08:00 via Android
    www.implementsfreedom.tech/ieee754/ieee754.html
    可以试试这个,支持 NaN 等预定义词在内存中的显示
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3416 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:53 · PVG 19:53 · LAX 03:53 · JFK 06:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.