要將double
的位轉換爲String
,你可以使用Double.doubleToLongBits
,創建具有相同位作爲double
一個long
,隨後Long.toBinaryString
將其與比特字符轉換爲String
。
double test = 0.5;
long doubleBits = Double.doubleToLongBits(test);
String doubleBitsStr = Long.toBinaryString(doubleBits);
System.out.println(doubleBitsStr);
輸出:11111111100000000000000000000000000000000000000000000000000000
要轉換回來,用Long.parseLong
與2
和Double.longBitsToDouble
基數。
doubleBits = Long.parseLong(doubleBitsStr, 2);
test = Double.longBitsToDouble(doubleBits);
System.out.println(test);
輸出:0.5
要將float
的位轉換爲String
,你可以使用Float.floatTointBits
,創建具有相同位作爲float
的int
,其次是Integer.toBinaryString
將其轉換爲一個String
以位爲字符。
float test2 = 0.5f;
int intBits = Float.floatToIntBits(test2);
String intBitsStr = Integer.toBinaryString(intBits);
System.out.println(intBitsStr);
輸出:111111000000000000000000000000
要轉換回來,用Integer.parseInt
與2
和Float.intBitsToFloat
基數。
intBits = Integer.parseInt(intBitsStr, 2);
test2 = Float.intBitsToFloat(intBits);
System.out.println(test2);
輸出:0.5
你嘗試過什麼到目前爲止? – JonasCz
當然,我可以創建自己的方式來存儲double的,但我需要規範的方法 – OLEGSHA