it-swarm.com.de

Zeichenkettenkonvertierung in Javascript (Dezimal in Binär)

Ein Neuling hier! Fragen Sie sich, warum die folgende Konvertierung fehlschlägt!

var num= Prompt("Enter num"); 
alert(num.toString(2));

Wenn d input 32 ist, erhalte ich auch 32 als d alert message: /

26
Ken

versuchen

(+num).toString(2)

,

Number(num).toString(2)

oder

parseInt(num, 10).toString(2)

Jedes davon sollte für Sie besser funktionieren.

Das Problem ist, dass die toString - Methode von Javascript Number - Objekten die toString - Methode von Object - Objekten überschreibt, um einen optionalen Radix als Argument für die Bereitstellung der Funktionalität zu akzeptieren du suchst nach. Das String - Objekt überschreibt nicht die Object - Methode von toString, daher werden alle übergebenen Argumente ignoriert.

Ausführlichere Informationen zu diesen Objekten finden Sie in den Dokumenten von Mozilla:

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toStringhttps://developer.mozilla.org/en-US/ docs/JavaScript/Reference/Global_Objects/String # Methods

oder W3 Schulen:

http://www.w3schools.com/jsref/jsref_tostring_number.asphttp://www.w3schools.com/jsref/jsref_obj_string.asp

39
Andbdrew

Mit dieser Funktion können Sie die Länge der Ausgabe festlegen.

Zum Beispiel erzeugt decbin(7,4)0111.

function decbin(dec,length){
  var out = "";
  while(length--)
    out += (dec >> length ) & 1;    
  return out;  
}

Demo

18
user669677

Hier ist meine Lösung, die nicht parseInt verwendet, sondern eine Methode, die die Logik hinter der Konvertierung von Dezimalzahlen in Binärzahlen zeigt.

Diese Methode druckt die Bits in das Array, das Sie später ausdrucken können, wenn Sie dies wünschen:

var number = 156;
var converted = [];

while(number>=1) {
    converted.unshift(number%2);
    number = Math.floor(number/2);
}

Das konvertierte Array sieht nun folgendermaßen aus:

[1,0,0,1,1,1,0,0]

was sich natürlich wieder in 156 umwandelt.

6
Max

/ ** Wandle eine Dezimalzahl in eine Binärzahl um ** /

var toBinary = function(decNum){
    return parseInt(decNum,10).toString(2);
}

/ ** Konvertiere eine Binärzahl in eine Dezimalzahl ** /

var toDecimal = function(binary) {
    return parseInt(binary,2).toString(10);
}

Verwenden Sie es schließlich

var num= Prompt("Enter num"); 
alert(toBinary(num));
6
Dipesh KC

Wandeln Sie es zuerst in eine Ganzzahl um. Im Moment konvertieren Sie einen String in seine Binärdarstellung.

num = +num;
5
christopher