2016-06-14 40 views
1

例如,如果我有一個雙,如何將由String定義的二進制文件中的double值更改爲許多單個位?

double x = 123.567 

,我把它轉化爲二進制形式,像

String y = Long.toBinaryString(Double.doubleToLongBits(x)) 

現在,我被困在如何從這個二進制獲得各單位(串Y)。或者我可以直接從double x獲得那些單獨的位。因爲String不能使用邏輯,所以我無法想出任何關於這個的想法。

+1

''字符串不能使用邏輯'誰告訴你的?因爲他們錯了。 – bcsb1001

+0

您正處於'doubleToLongBits'的正確軌道上。你可以使用'String.charAt(int)'或'String.toCharArray()'來檢查字符串的字符,或者你可以直接使用這種技術檢查long中的位:http://stackoverflow.com/questions/ 1092411/java-checking-if-a-bit-is-0-or-1-in-a-long – dnault

+0

所以你的意思是說,這是行之有效的? y&0x1? – MarvinC

回答

0

我不完全確定你的方法的目的是什麼,但也許你應該看看BitSet?您可以將長整型數組放入數組中,使用valueOf創建一個BitSet,然後使用實際上用於邏輯操作的數據結構。

+1

注意:'BitSet.valueOf'使用little-endian字節排序。 – dnault

相關問題