java - 在java中将浮点位解释为long?

标签 java optimization types casting floating-point

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/

相关文章:

performance - 在 Dart 中使用定长列表有性能优势吗?

groovy - 在 Groovy 中声明类型

java - 优化Java中的Draw方法

java - 根据导航目的地更新 ActionBar 菜单

java - thymeleaf 项目中的 Bootstrap 模式

java - 我使用 charAt 的循环不起作用

database - 优化: use local files or databases for HTML

scala - 如何确定类型参数的方差?

java - 对多种数据类型使用相同的函数

java - 如何测试复杂的异步网络代码并遵循 TDD