我在网上搜索,到处说:FILD转换了两个补码 整数到80位扩展精度浮点数,并将其置于浮点堆栈的顶部。 所以,我有一个程序这样做,但我得到的结果是意外的。
实施例: 我在内存中有数字0xFF20A810(假设在0x40000000中) fild [0x40000000] fstp [0x40010000]
我得到的结果是0x41EFE41502000000。数字是如何转换的? 我正处于使用它的裂缝中间,我找不到解决方案。
谢谢
答案 0 :(得分:3)
0x41EFE41502000000是双精度的4280330256.0。 0xFF20A810是4280330256,是无符号整数。
所以你不小心加载了它,我认为是qword,并且很幸运(其他字节为零)。