Ich habe in Dezimalzahlen und wieder eine sehr große Zahl dargestellt als binäre in JavaScript:ein große Anzahl von binären in JavaScript
var largeNumber = '11010011010110100001010011111010010111011111000010010111000111110011111011111000001100000110000011000001100111010100111010101110100010001011010101110011110000011000001100000110000011001001100000110000011000001100000110000111000011100000110000011000001100000110000011000010101100011001110101101001100110100100000110000011000001100000110001001101011110110010001011010001101011010100011001001110001110010100111011011111010000110001110010101010001111010010000101100001000001100001011000011011111000011110001110111110011111111000100011110110101000101100000110000011000001100000110000011010011101010110101101001111101001010010111101011000011101100110010011001001111101'
Wenn ich es zu konvertieren, indem die Verwendung von parseInt(largeNumber, 10)
l dezimal es gibt mir 1.5798770299367407e+199
aber wenn ich versuche, es zu binär zu konvertieren zurück:
parseInt(`1.5798770299367407e+199`, 2)
es gibt 1
(was ich denke, ist damit zusammen, wie parseInt
Arbeiten von Rundungswert), wenn ich es erwartet hatte meine ursprüngliche binäre Darstellung vonzu sehen. Kannst du mir solches Verhalten erklären? Und wie kann ich es in JavaScript zurück in den ursprünglichen Zustand konvertieren?
EDIT: Diese Frage ist ein Ergebnis meines Experiments, in dem ich um spiele mit Speicherung und große Menge an boolean Daten übertragen werden. Die largeNumber
ist eine Darstellung einer Sammlung [true,true,false,true ...]
boolescher Werte, die zwischen Client, Client Worker und Server gemeinsam genutzt werden müssen.
'parseInt' ist keine Methode zur Konvertierung von einem Zahlensystem in ein anderes. Sie müssen lesen, was es _actually_ tut, dann überdenken, wie Sie Ihr Endergebnis erreichen. –
_ "Ich habe eine sehr große Zahl als binär dargestellt" _ Wie wurde die ursprüngliche Zahl in 'largeNumber' konvertiert? – guest271314
Das Konvertieren einer numerischen Zeichenfolge in eine Zahl ist kein verlustfreier Prozess. Zahlen haben nur 64 Bits, sie können nicht viele Informationen speichern. – Oriol