這裏是一個新手!想知道爲什麼下面的轉換失敗!Javascript中的字符串轉換(小數點到二進制)
var num= prompt("Enter num");
alert(num.toString(2));
如果d輸入是32 ..我得到32 d警報消息太:/
這裏是一個新手!想知道爲什麼下面的轉換失敗!Javascript中的字符串轉換(小數點到二進制)
var num= prompt("Enter num");
alert(num.toString(2));
如果d輸入是32 ..我得到32 d警報消息太:/
嘗試
(+num).toString(2)
,
Number(num).toString(2)
或
parseInt(num, 10).toString(2)
任何這些應該更好地爲您。
的問題是,JavaScript的Number
對象的toString
方法重寫Object
對象的toString
方法接受一個可選的基數作爲參數來提供你正在尋找的功能。 String
對象不會覆蓋Object
的toString
方法,所以傳入的任何參數都將被忽略。
有關這些對象的更多詳細信息,請參閱文檔Mozilla的:
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toString https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String#Methods
或W3學校:
http://www.w3schools.com/jsref/jsref_tostring_number.asp http://www.w3schools.com/jsref/jsref_obj_string.asp
所以這樣做是一樣的權利?它將字符串32轉換爲整數,然後執行二進制轉換。 – 2013-04-21 15:48:04
它也可以工作:)謝謝Andbdrew! – 2013-04-21 15:49:35
爲什麼不decnum.toString(2)沒有所有的前戲 – foreyez 2014-07-03 14:44:23
它轉換爲一個整數的第一。目前,您正在將字符串轉換爲二進制表示形式。
num = +num;
將其轉換爲int。然後,Javascript可以將其轉換爲二進制字符串。 – christopher 2013-04-21 15:46:36
它的工作原理!謝謝克里斯:) – 2013-04-21 15:46:55
好吧。請標記任何一個答案是正確的。很高興我們可以提供幫助。 – christopher 2013-04-21 15:47:56
/** 轉換一個十進制數到二進制 **/
var toBinary = function(decNum){
return parseInt(decNum,10).toString(2);
}
/** 轉換成二進制數轉換爲十進制 **/
var toDecimal = function(binary) {
return parseInt(binary,2).toString(10);
}
最後使用它
var num= prompt("Enter num");
alert(toBinary(num));
有了這個功能,你可以指定輸出的長度。例如decbin(7,4)
產生0111
。
function decbin(dec,length){
var out = "";
while(length--)
out += (dec >> length) & 1;
return out;
}
這是我的解決方案,不使用parseInt函數,而是示出了十進制的二進制轉換背後的邏輯的方法。
此方法打印的位到陣列以後可能打印出,如果你想:
var number = 156;
var converted = [];
while(number>=1) {
converted.unshift(number%2);
number = Math.floor(number/2);
}
轉換的陣列將現在顯示像這樣:
[1,0,0, 1,1,0,0]
這當然轉換回156
這就是我所期待的事情發生。你期待這樣做,它不這樣做? – greg84 2013-04-21 15:39:22
將32轉換爲顯示二進制數的字符串! – 2013-04-21 15:41:28