2016-10-13 4 views
1

Nehmen Sie diese IP-Adresse:konvertieren Zahlen auf VOLL binären Oktetts

192.168.1.1

Ich will es brechen in 4 vollen binären Oktetts, so:

11000000 . 10101000 . 00000001 . 00000001.


All Konvertierungen ich weiß, und diejenigen, die ich auf anderen Fragen Stackoverflow gefunden habe, gibt nur die binäre Zahl selbst, zum Beispiel:

(1 >>> 0).toString(2) kehren 1, wenn ich will 00000001

Number(2).toString(2) kehrt 10 wenn ich 00000010


wollen 10

Gibt es eine eingebaute JavaScript-Methode, die ich noch nicht kennengelernt habe, oder muss ich die Nullen manuell hinzufügen, abhängig von der Nummer?

+0

ist es das, was Sie wollen - http://stackoverflow.com/questions/10073699/pad-a-number-with-leading-zeros-in-javascript –

Antwort

2

Sie verwenden können Number#toString Methode mit Radix 2 zum Konvertieren einer Zahl in entsprechende binäre Zeichenfolge.

var str = '192.168.1.1'; 
 

 
console.log(
 
    // Split strings based on delimiter . 
 
    str.split('.') 
 
    // iterate over them 
 
    .map(function(v) { 
 
    // parse the String and convert the number to corresponding 
 
    // binary string afterwards add preceding 0's 
 
    // with help of slice method 
 
    return ('00000000' + Number(v).toString(2)).slice(-8) 
 
     // rejoin the string 
 
    }).join('.') 
 
)

1

Die einfachste Lösung ist die Antwort mit Nullen voranstellen und dann einen negativen Wert Teilzeichenfolge verwendet von rechts zu zählen, nicht die linken ...

alert(("00000000" + (1 >>> 0).toString(2)).substr(-8));

Verwandte Themen