Ich möchte eine binäre Zeichenfolge in eine Ziffer konvertieren, z
var binary = "1101000" // code for 104
var digit = binary.toString(10); // Convert String or Digit (But it does not work !)
console.log(digit);
Wie ist es möglich? Vielen Dank
Ich möchte eine binäre Zeichenfolge in eine Ziffer konvertieren, z
var binary = "1101000" // code for 104
var digit = binary.toString(10); // Convert String or Digit (But it does not work !)
console.log(digit);
Wie ist es möglich? Vielen Dank
parseInt(101, 2)
kehrt zurück5
.parseInt
. Ich dachte, es würde den String von Basis 10 konvertieren -> was auch immer (parseInt('5612', 2)
wenn ich so denke, würde es seine binäre Form zurückgeben;).ES6 unterstützt binäre numerische Literale für Ganzzahlen. Wenn die binäre Zeichenfolge also unveränderlich ist, wie im Beispielcode in der Frage, können Sie sie einfach so eingeben, wie sie mit dem Präfix
0b
oder0B
:quelle
parseInt()
mit radix ist die beste lösung (wie von vielen gesagt wurde):Wenn Sie es jedoch ohne parseInt implementieren möchten, finden Sie hier eine Implementierung:
quelle
Verwenden Sie den Radix- Parameter von
parseInt
:quelle
quelle
quelle
Eine andere Implementierung nur für das funktionale JS-Üben könnte sein
+c
wird derString
Typc
für eineNumber
ordnungsgemäße Addition auf einen Typwert gezwungen .quelle
Ich habe alles gesammelt, was andere vorgeschlagen haben, und folgende Funktion erstellt, die 3 Argumente hat, die Nummer und die Basis, von der diese Nummer stammt, und die Basis, auf der diese Nummer sein wird:
Führen Sie Code Snippet aus, um es selbst zu versuchen:
Zu Ihrer Information: Wenn Sie 2d als Hex-Zahl übergeben möchten, müssen Sie es als Zeichenfolge senden, damit es so aussieht:
changeBase('2d', 16, 10)
quelle
Leicht modifizierter herkömmlicher binärer Konvertierungsalgorithmus mit etwas mehr ES6-Syntax und automatischen Funktionen:
Konvertieren Sie eine binäre Sequenzzeichenfolge in ein Array (vorausgesetzt, sie wurde noch nicht als Array übergeben).
Umgekehrte Reihenfolge, um zu erzwingen, dass der Index 0 bei der Binärziffer ganz rechts beginnt, da die Binärzahl von rechts nach links berechnet wird
'redu' 'Array-Funktion durchläuft das Array und führt eine Summierung von (2 ^ Index) pro Binärziffer durch [nur wenn Binärziffer === 1] (0-Ziffer ergibt immer 0)
HINWEIS: Binäre Konvertierungsformel:
{wobei d = Binärziffer, i = Array-Index, n = Array-Länge-1 (von rechts beginnend)}
n
∑ (d * 2 ^ i)
i = 0
quelle