Floating point 将IEEE 754-2008十进制浮点数据转换为二进制浮点格式

Floating point 将IEEE 754-2008十进制浮点数据转换为二进制浮点格式,floating-point,ieee-754,Floating Point,Ieee 754,我在磁盘上有一个二进制数据,以IEEE 754-2008格式存储,它是以10为基数的32位浮点(如果我没有弄错的话:)。如何将其转换为基数2浮点(如英特尔处理器上的标准float32)?用C、Python或Java编写的示例代码将非常棒!谢谢你的帮助 如果您使用的是GCC,您可以访问专用的十进制浮点例程: 您应该将二进制数据反序列化为十进制浮点类型之一,然后将转换函数应用于标准浮点类型。谢谢您的回复。不幸的是,我得到一个错误:错误:当我试图定义_Decimal32变量时,这个目标不支持十进制浮点

我在磁盘上有一个二进制数据,以IEEE 754-2008格式存储,它是以10为基数的32位浮点(如果我没有弄错的话:)。如何将其转换为基数2浮点(如英特尔处理器上的标准float32)?用C、Python或Java编写的示例代码将非常棒!谢谢你的帮助

如果您使用的是GCC,您可以访问专用的十进制浮点例程:


您应该将二进制数据反序列化为十进制浮点类型之一,然后将转换函数应用于标准浮点类型。

谢谢您的回复。不幸的是,我得到一个错误:错误:当我试图定义_Decimal32变量时,这个目标不支持十进制浮点。我猜它在英特尔平台上不受支持???是的,但您的编译器可能不支持它。从源代码构建GCC时,可以选择启用或禁用十进制浮点支持;我建议重新编译GCC,以确保它的存在。(这很直截了当,别担心。)谢谢。我应该试试。Darwin也支持它吗?您当然可以在Darwin上构建GCC,但是在Darwin上支持的十进制浮点类型可能不同。(显然有两种常见的类型。)无论如何,如果您只需要读取一些二进制数据,那么手动解析可能会更快。关于GCC的一点是,它实际上可以用小数执行操作,但是如果您无论如何都不需要小数,那么这可能会有些过分。