这里有新手!想知道为什么以下转换失败!
var num= prompt("Enter num");
alert(num.toString(2));
Run Code Online (Sandbox Code Playgroud)
如果d输入是32 ..我也得到32作为d警告消息:/
And*_*rew 40
尝试
(+num).toString(2)
Run Code Online (Sandbox Code Playgroud)
,
Number(num).toString(2)
Run Code Online (Sandbox Code Playgroud)
要么
parseInt(num, 10).toString(2)
Run Code Online (Sandbox Code Playgroud)
任何这些都应该更适合你.
问题是toStringjavascript Number对象的toString方法会覆盖对象的方法,Object以接受可选的radix作为参数来提供您正在寻找的功能.该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
小智 18
使用此功能,您可以指定输出的长度.
例如decbin(7,4)生产0111.
function decbin(dec,length){
var out = "";
while(length--)
out += (dec >> length ) & 1;
return out;
}
Run Code Online (Sandbox Code Playgroud)
/**将十进制数转换为二进制**/
var toBinary = function(decNum){
return parseInt(decNum,10).toString(2);
}
Run Code Online (Sandbox Code Playgroud)
/**将二进制数转换为十进制**/
var toDecimal = function(binary) {
return parseInt(binary,2).toString(10);
}
Run Code Online (Sandbox Code Playgroud)
最后使用它
var num= prompt("Enter num");
alert(toBinary(num));
Run Code Online (Sandbox Code Playgroud)
这是我的解决方案,它不使用parseInt,而是一个显示十进制转换为二进制的逻辑的方法.
此方法将位打印到阵列,如果您愿意,可以在以后打印出来:
var number = 156;
var converted = [];
while(number>=1) {
converted.unshift(number%2);
number = Math.floor(number/2);
}
Run Code Online (Sandbox Code Playgroud)
转换后的数组现在将如下所示:
[1,0,0,1,1,1,0,0]
当然可以转换回156.
| 归档时间: |
|
| 查看次数: |
43629 次 |
| 最近记录: |