2016-06-14 6 views
1

Zum Beispiel, wenn ich ein Doppel habe,Wie kann ich ein Double in binary, das durch String definiert ist, in viele einzelne Bits ändern?

double x = 123.567 

und ich drehe es in binärer Form, wie

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

Nun, ich fest, wie jeden einzelnen Bits aus diesem binären zu erhalten (String y). Oder kann ich dieses einzelne Bit direkt von double x bekommen. Da String keine Logik verwenden kann, kann ich mir keine Vorstellung davon machen.

+1

''String' kann keine Logik verwenden' Wer hat dir das gesagt? Weil sie falsch liegen. – bcsb1001

+0

Sie sind mit 'doubleToLongBits' auf dem richtigen Weg. Sie könnten die Zeichen Ihrer Zeichenkette mit 'String.charAt (int)' oder 'String.toCharArray()' überprüfen, oder Sie könnten die Bits in der long direkt mit dieser Technik untersuchen: http://stackoverflow.com/questions/ 1092411/java-checking-wenn-ein-Bit-ist-0-oder-1-in-einem-lang – dnault

+0

Sie meinen also, dass funktioniert? y & 0x1? – MarvinC

Antwort

0

Ich bin nicht ganz sicher, was der Zweck Ihres Ansatzes ist, aber vielleicht sollten Sie sich BitSet ansehen? Sie könnten Ihre Longs in ein Array setzen, ein BitSet mit valueOf erstellen und dann eine Datenstruktur verwenden, die eigentlich für logische Operationen verwendet werden soll.

+1

Vorbehalt: 'BitSet.valueOf' verwendet Little-Endian-Byte-Reihenfolge. – dnault