Floating point 检查数据是否为双浮、浮或半浮

Floating point 检查数据是否为双浮、浮或半浮,floating-point,Floating Point,我想知道是否有办法检查一些二进制数据是否包含双精度浮点、浮点或半浮点 对于半浮点数,我使用下面的代码将其转换回浮点数: fltInt32 = ((fltInt16 & 0x8000) << 16) \ | ((fltInt16 & 0x7fff) << 13) + 0x38000000; 在C/C++中,double类型的变量包含双精度浮点数;类型float用于单精度浮点,并且没有称为半浮点的标准。提供更多的解释。你有关于数字范围的

我想知道是否有办法检查一些二进制数据是否包含双精度浮点、浮点或半浮点

对于半浮点数,我使用下面的代码将其转换回浮点数:

fltInt32 = ((fltInt16 & 0x8000) << 16) \
           | ((fltInt16 & 0x7fff) << 13) + 0x38000000;

在C/C++中,double类型的变量包含双精度浮点数;类型float用于单精度浮点,并且没有称为半浮点的标准。提供更多的解释。你有关于数字范围的信息吗?除了一些可能的指数位外,所有的1模式都用于浮点和双精度模式,但最常用的幅值范围使用不同的模式。二进制数据是顶点,我知道它们总是浮点或半浮点,但必须目视检查它们,相反,我想知道是否有一些概率检查,我可以用来猜测我是在考虑无效浮动/一半是双倍curiosity@Alex不存在无效浮点,但存在NaN值。如果您知道您的数据不应该包含任何NAN,那么看起来是1的内容将表明您使用了错误的格式。如果零是一个可能的值,那么它将是一个严重的问题。我不认为有任何方法可以区分两个半宽零和一个浮动零。这可能需要对文件格式有全面的了解。如果90%的单词落在预期的大小范围内(假设为浮动),则假设它们都是浮动的。