我正在寻找IEEE-754操作的参考实现。有这样的事吗?
答案 0 :(得分:8)
我相信C库SoftFloat和fdlibm适合您所寻找的内容。其他包括Linux(GNU libc,glibc)或* BSD libc的math functions。最后,CRlibm也应引起您的兴趣。
Ulrich Drepper有一个有趣的look at different math libraries,也许值得一读。
答案 1 :(得分:3)
我必须让你失望:几乎没有。
虽然技术上有符合IEEE-754标准的系统,但它们确实如此 没有实现标准中描述的非必需功能,参考 实施允许
。这会引起反复出现的困境 威廉卡汉,标准及其适应背后的主要力量 在英特尔处理器上。
我不知道是否有一些做支持他们的深奥语言, 但我可以排除Java,C#,C ++,Fortran。
编辑:虽然缺乏编译器支持,但我建议使用Hausers SoftFloat 由mctylr给出的实现。豪瑟知道他在做什么。答案 2 :(得分:1)
一个相当令人困惑的问题;在C ++中,假设硬件或编译器负责这种细节。因此,在C ++中,浮点加法将是
float a = 1.0;
float b = 2.0;
float c = a + b;
我确定这不是你的意思;也许你会从this page中受益,它试图在javascript中模拟符合IEEE-754标准的硬件?
答案 3 :(得分:-2)
你可以为python做一个解决方法。 python有一个可以转换IEEE-754 32/64位精度HEX浮点
的函数 import struct
struct.unpack('!f', '41973333'.decode('hex'))[0]
您可以在python中编写应用程序或只创建一个python函数并在C / C ++中调用它
我不确定如何从C / C ++调用python,但这是可能的。 Calling Python functions from C++