据我所知,二进制数系统使用两个数的集合,0和1来执行计算。
为什么:
console.log(parseInt("11", 2));
返回3
而不是00001011
?http://www.binaryhexconverter.com/decimal-to-binary-converter
发布于 2018-06-08 04:16:23
当应用于Number
类型时,.toString(2)
可以工作。
255.toString(2) // syntax error
"255".toString(2); // 255
var n=255;
n.toString(2); // 11111111
// or in short
Number(255).toString(2) // 11111111
// or use two dots so that the compiler does
// mistake with the decimal place as in 250.x
255..toString(2) // 11111111
发布于 2015-06-30 06:09:19
parseInt()函数解析字符串参数并返回指定基数(数学数制中的基数)的整数。
所以你告诉系统你想把11从二进制转换成十进制。
具体到你引用的网站,如果你仔细观察,它实际上是使用JS发出一个HTTP GET来在web服务器端转换它。类似于以下内容:
http://www.binaryhexconverter.com/hesapla.php?fonksiyon=dec2bin°er=11&pad=false
发布于 2019-02-06 20:16:10
我认为你应该理解十进制到二进制转换背后的数学原理。下面是javascript中的简单实现。
main();
function main() {
let input = 12;
let result = decimalToBinary(input);
console.log(result);
}
function decimalToBinary(input) {
let base = 2;
let inputNumber = input;
let quotient = 0;
let remainderArray = [];
let resultArray = [];
if (inputNumber) {
while (inputNumber) {
quotient = parseInt(inputNumber / base);
remainderArray.push(inputNumber % base);
inputNumber = quotient;
}
for (let i = remainderArray.length - 1; i >= 0; i--) {
resultArray.push(remainderArray[i]);
}
return parseInt(resultArray.join(''));
} else {
return `${input} is not a valid input`;
}
}
https://stackoverflow.com/questions/31126364
复制相似问题