Java的Float.floatToIntBits实现代码在C \ C ++中

时间:2010-12-20 14:11:15

标签: c++ c

我想要C / C ++中java的Float.floatToIntBits()实现代码的源代码。

2 个答案:

答案 0 :(得分:6)

这似乎是best解决方案:

#include <cstring>

unsigned float_to_bits(float x)
{
    unsigned y;
    memcpy(&y, &x, 4);
    return y;
}

当然这取决于float和unsigned消耗4个字节。

答案 1 :(得分:1)

Google Codesearch

public static int floatToIntBits(float value) {
        int result = floatToRawIntBits(value);
        // Check for NaN based on values of bit fields, maximum
        // exponent and nonzero significand.
        if ( ((result & FloatConsts.EXP_BIT_MASK) ==
              FloatConsts.EXP_BIT_MASK) &&
             (result & FloatConsts.SIGNIF_BIT_MASK) != 0)
            result = 0x7fc00000;
        return result;
    }

按照常量的链接。