Wie könnte ich konvertieren Sie eine 64-Breite Binär-string zu lang in Java?

Ich konvertieren möchten, eine 64-Breite Binär-string zu lang, es ist eine statische Methode:

Long.parseLong(String s, int radix)

um dies zu tun, aber es ist nicht geeignet für meinen Fall.

Das problem ist, mein Binär-string ist eine Maschine-Stil long int.

Beispiel:

1111111111111111111111111111111111111111111111111111111110000101
stellt -123, aber diese Methode erkenne es als eine große positive Zahl ist, das beunruhigt mich, wie könnte ich dieses problem lösen?

Muss ich eine Funktion schreiben, die nicht Komplement?

  • Könnten Sie bitte erklären, mehr auf machine-style long int und wie 123 dargestellt ist, die long binary. Coz Binär 1111011 123. Sorry, wenn ich nicht bekam auf Ihre Frage Recht.
  • Erste, ich Danke Ihnen sehr. Es -123 aber nicht die 123, die negativ ist. Maschine-Stil bedeutet, es ist die Darstellung der hardware des Computers, die "1" in das erste bit bedeutet negative Zahl ist, und 0 bedeutet nicht-positive Zahl, es ist unterschiedlich von Mensch-Stil, die mit "-" für negative Zahl ist. Bin ich klar?
  • Ich denke, dass müssen Sie möglicherweise überprüfen Sie die string-Darstellung -123 als eine lange Nummer. Long.toString(-123, 2) Erträge -1111011.
InformationsquelleAutor Sefier Tang | 2011-12-02
Schreibe einen Kommentar