Tt 不是正常的“类型转换”。
我只是想要一个相当于 Java 的东西:
long i;
float y;
i = * ( long * ) &y;// C code
有些人可能猜我只是想尝试一下 this
这是C代码,问题是如何用Java编写它,因为那里没有指针和引用 是的,我实现了它并且工作速度比 1/Math.sqrt() 更快,同时在第四个标志上首先出现错误!!
最佳答案
静态方法Float.floatToRawIntBits()
正是这样做的。还有Float.floatToIntBits()
它的 NaN
处理语义略有不同。
逆变换为 Float.intBitsToFloat()
.
如果您想知道为什么它是 int
而不是 long
,Java int
是 32 位宽(与 float
)。
关于java - 在java中将浮点位解释为long?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45825546/