在 c/c++ 中,可以执行以下操作
float b = 3.;
int a = *(int*)&b;
我想在java中做同样的事情,有可能吗?如果可以,怎么做?
谢谢你。
Java没有指针。对于这种特定情况,您可以使用Float.intBitsToFloat
(并且Float.floatToIntBits
对于另一种方式;Double
也有类似的方法)。然而,没有办法进行更时髦的“转换”。
JAVA中没有POINTER
这种东西。JAVA 有一个称为内存管理或说 GC(垃圾收集器)的功能来为您处理所有与内存相关的操作。不允许使用内存地址访问任何内存块。
Pointers
在 java 中不可用。您必须使用Object
.
Float f = new Float(3.0);
Integer i = Math.round(f);
Java 基于指针实现一切。因此,Java 中的任何对象变量都将作为指针引用传递。他们使它对 Java 开发人员不可见。要从 float 或 double 转换为 int,您可以简单地尝试
double b = 3.0;
int a = (int)b;
请注意,如果 b = 1.x,则 a = 1