2014-12-24 42 views
4

我已經使用.toString(2)將整數轉換爲二進制,但只在需要時才返回二進制(即第一位是1 )。將前導零添加到JavaScript中的二進制字符串的方法

所以其中:

num = 2; 
num.toString(2) // yields 10. 

如何產生八位00000010?

+0

您可以在結果的前面添加零直到它是正確的長度。 – forgivenson

+0

在這裏回答http://stackoverflow.com/questions/24337260/javascript-a-byte-is-suppose-to-be-8-bits – sarvesh

回答

14

它的那樣簡單

var n = num.toString(2); 
n = "00000000".substr(n.length) + n; 
1

嘗試這樣的事情......

function pad(n, width, z) { 
    z = z || '0'; 
    n = n + ''; 
    return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n; 
} 

...然後用它作爲...

pad(num.toString(2), 8); 
+0

謝謝 - 聰明的解決方案。 – zahabba

3

您可以只添加將結果前面的零置於正確的長度。

var num = 2, 
    binaryStr = num.toString(2)i; 

while(binaryStr.length < 8) { 
    binaryStr = "0" + binaryStr; 
} 
+0

直觀的解決方案 - 謝謝 – zahabba

相關問題