我想要C / C ++中java的Float.floatToIntBits()实现代码的源代码。
答案 0 :(得分:6)
这似乎是best解决方案:
#include <cstring>
unsigned float_to_bits(float x)
{
unsigned y;
memcpy(&y, &x, 4);
return y;
}
当然这取决于float和unsigned消耗4个字节。
答案 1 :(得分:1)
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;
}
按照常量的链接。