在java中将float位解释为long?

时间:2017-08-22 19:29:27

标签: java optimization types casting floating-point

Tt不是正常的"类型转换"。

我只想拥有相同的Java:

long i;
float  y;
i  = * ( long * ) &y;// C code
一些人可能会猜我只想尝试一下 this

这是C代码,问题是如何在Java中创建它,因为没有指针和引用 是的,我实现了它,并以1 / Math.sqrt()的方式更快地工作,同时在4rth标志上首先出现错误!!

1 个答案:

答案 0 :(得分:6)

静态方法Float.floatToRawIntBits()就是这样做的。还有Float.floatToIntBits()具有稍微不同的NaN处理语义。

逆变换是Float.intBitsToFloat()

如果你想知道为什么它是int而不是long,那么Java int是32位宽(就像float一样)。