我目前发现没有一个 AI 能正确按照单精度转换 16 进制数 47 B8 05 01 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kmephisto
0.33D
V2EX    问与答

我目前发现没有一个 AI 能正确按照单精度转换 16 进制数 47 B8 05 01

  •  1
     
  •   kmephisto 181 天前 1881 次点击
    这是一个创建于 181 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我的 prompt 是“按 IEEE single-precision 转换 47 B8 05 01”,

    deepseek 算出来是 94287.5 ,

    claude-3-7-sonnet-20250219 算出来是 94267.8 ,

    ChatGPT 官网免费版算的 123871.0 ,

    gpt-4o-mini 算的 11264.0

    正确答案是 94218.0078125 ,只有这个转换网站是对的 https://www.h-schmidt.net/FloatConverter/IEEE754.html

    Decimal Representation: 94218.01 Value actually stored in float: 94218.0078125 Error due to conversion: 0.0021875 Binary Representation 01000111101110000000010100000001 Hexadecimal Representation 47b80501 
    13 条回复    2025-04-17 10:46:54 +08:00
    icyalala
        1
    icyalala  
       181 天前
    浮点数二进制转为十进制(最短表示且 round to event )是非常复杂的算法: https://github.com/jk-jeon/dragonbox
    不调函数别说 AI 了,让真人手算也算不出来
    icyalala
        2
    icyalala  
       181 天前
    @icyalala typo: round to even
    ZRS
        3
    ZRS  
       181 天前
    你让它写代码做转换试试
    Perry
        4
    Perry  
       181 天前 via iPhone
    这种比较 deterministic 的问题就别想着只依赖 AI 做,你可以换个思路,让他写一个 python script 跑一下算出来
    wssjy1234
        5
    wssjy1234  
       181 天前
    o3mini 算的是对的,不过要提醒算精确值
    joyyu
        6
    joyyu  
       181 天前
    deepseek-R1 深度思考是对的。。本来还想说这种运算要大模型来最好也是调 Tool 来得到结果,结果发现推理模型还是挺强啊
    msg7086
        8
    msg7086  
       180 天前
    帮你跑了 Gemini 2.5 Pro Exp ,也可以算出正确答案:

    (前略)
    最终结果: 将整数部分和小数部分相加:94218 + 0.0078125 = 94218.0078125
    所以,十六进制 47 B8 05 01 按照 IEEE 754 单精度标准表示的十进制浮点数是 94218.0078125 。

    不过 Gemini 2.0 Flash 算不对,尾数数 0 的时候数错个数了。
    这方面思考模型应该更强一些,更容易自己纠正自己做错的部分。
    passive
        9
    passive  
       180 天前 via Android
    IEEE745 好像是不规定 endian 的
    Legman
        10
    Legman  
       180 天前 via Android
    @msg7086 一样,grok3 也不对
    xiangyuecn
        11
    xiangyuecn  
       180 天前
    小端:2.456045448813471e-38 == new Float32Array(new Uint8Array([0x47,0xB8,0x05,0x01]).buffer)[0]
    大端:94218.0078125 == new Float32Array(new Uint8Array([0x47,0xB8,0x05,0x01].reverse()).buffer)[0]

    试了一下 deepseek ,结果确实是胡说八道
    horizon
        12
    horizon  
       180 天前
    你就好比让人口算,但不许用计算器。
    然后呢?
    min
        13
    min  
       180 天前
    按 IEEE 745 single-precision 转换 47 B8 05 01 到 10 进制,注意小数部分的精度准确。

    o3-mini-high
    gemini-2.5-pro

    可以做对
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1037 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 18:37 PVG 02:37 LAX 11:37 JFK 14:37
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86