在C/C++,可以做的事情一樣如何做類型轉換爲指針類型的Java像C/C
float b = 3.;
int a = *(int*)&b;
我想要做同樣的事情在Java中,是有可能,如果又怎樣?
謝謝。
在C/C++,可以做的事情一樣如何做類型轉換爲指針類型的Java像C/C
float b = 3.;
int a = *(int*)&b;
我想要做同樣的事情在Java中,是有可能,如果又怎樣?
謝謝。
Pointers
在java中不可用。你必須使用Object
。
Float f = new Float(3.0);
Integer i = Math.round(f);
我知道。這就是爲什麼我問。 :) – Dan
Java沒有指針。對於這種特定情況,您可以使用Float.intBitsToFloat
(和另一種方式Float.floatToIntBits
; Double
也有類似的方法)。然而,沒有辦法做更好的「轉換」。
JAVA中沒有POINTER
類的東西。 JAVA有一個稱爲內存管理的功能,或者說GC(垃圾回收器)來處理所有與內存相關的操作。您不允許使用內存地址訪問任何內存塊。
雖然應該指出,垃圾回收和指針並不相互排斥。 .NET Framework有一個垃圾收集器_and_指針。 – zneak
Java根據指針實現一切。所以Java中的任何對象變量都將作爲指針引用傳遞。他們讓Java開發人員看不到它。 從float或double轉換爲int,你可以簡單地嘗試
double b = 3.0;
int a = (int)b;
注意,如果B = 1.x的則a = 1
你不能在c中點亮嗎? –
把一個double轉換成一個int並讀取這個double位,就好像它們是一個int一樣,是兩個完全不同的東西,OP正在嘗試做第二個。 – zneak
有一個規劃問題,你試圖解決,或你只是試圖確保Java和C有不同的做事方式。 – dcaswell