Javascript中的字符串转换(十进制到二进制)

时间:2013-04-21 15:38:04

标签: javascript

这里有新手!想知道为什么以下转换失败了!

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

如果d输入是32 ..我也得到32作为警告消息:/

5 个答案:

答案 0 :(得分:39)

(+num).toString(2)

Number(num).toString(2)

parseInt(num, 10).toString(2)

任何这些都应该对你有用。

问题是javascript toString对象的Number方法会覆盖toString对象的Object方法,以接受可选的基数作为参数来提供您的功能正在找。 String对象不会覆盖Object的{​​{1}}方法,因此传入的任何参数都将被忽略。

有关这些对象的更多详细信息,请参阅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

答案 1 :(得分:18)

使用此功能,您可以指定输出的长度。

例如decbin(7,4)生成0111

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

demo

答案 2 :(得分:6)

/ **  将十进制数转换为二进制数  ** /

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));

答案 3 :(得分:6)

这是我的解决方案,它不使用parseInt,而是一个显示十进制转换为二进制的逻辑的方法。

此方法将位打印到数组中,如果您愿意,可以在以后打印出来:

var number = 156;
var converted = [];

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

转换后的数组现在将如下所示:

<强> [1,0,0,1,1,1,0,0]

当然可以转换回156.

答案 4 :(得分:5)

首先将其转换为整数。目前你正在将一个字符串转换为它的二进制表示。

num = +num;