
正文
JS十进制转二进制(控制位数)
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
主要需求:十进制转二进制,可以控制指定的位数。
转化显示后的二进制数为bin-bit中输入的数字宽度。
dec-number为5,bin-bit为5,则转化后数字为00101。
如果bin-bit小于转化后的二进制本身位数,则使用原本的位数,如dec-number为5,bin-bit为2,依然输出101,但同时在console中报个错。
一、十进制转二进制,不控制位数。
<!DOCTYPE html>
<html> <head>
<meta charset="UTF-8">
<title>10进制转2进制,不带位数控制</title>
</head> <body>
<input id="dec-number" type="number" placeholder="输入一个十进制非负整数">
<button id="trans-btn">转化为二进制</button>
<p id="result">运算结果</p>
<script>
//点击事件
document.getElementById("trans-btn").onclick = function () {
var x = document.getElementById("dec-number").value;
dec2bin(x);
} function dec2bin(decNumber) {
// 在这里实现你的转化方法,注意需要判断输入必须为一个非负整数
if (decNumber < 0) {
alert("请输入一个非负整数");
} else {
var q = binary(decNumber);
document.getElementById("result").innerHTML = ("计算结果为:" + q);
}
} // 实现党点击转化按钮时,将输入的十进制数字转化为二进制,并显示在result的p标签内
// Some coding function binary(num) {
var resArry = [];
var xresArry = [];
i = 0;
//除2取余
for (; num > 0;) {
resArry.push(num % 2);
num = parseInt(num / 2);
i++;
}
//倒序排列
for (j = i - 1; j >= 0; j--) {
xresArry.push(resArry[j]);
}
return xresArry.join().replace(/,/g, "");
}
</script>
</body> </html>
二、十进制转二进制,控制位数。
<!DOCTYPE html>
<html> <head>
<meta charset="UTF-8">
<title>10进制转2进制,带位数控制</title>
</head> <body>
<input id="dec-number" type="number" placeholder="输入一个十进制非负整数">
<input id="bin-bit" type="number" placeholder="输入需要显示的位数">
<button id="trans-btn">转化为二进制</button>
<p id="result">运算结果</p>
<script>
//点击事件
document.getElementById("trans-btn").onclick = function () {
var x = document.getElementById("dec-number").value;
var y = document.getElementById("bin-bit").value;
dec2bin(x, y);
} function dec2bin(decNumber, bit) {
// 在这里实现你的转化方法,注意需要判断输入必须为一个非负整数
if (decNumber < 0) {
alert("请输入一个非负整数");
} else {
var q = binary(decNumber, bit);
document.getElementById("result").innerHTML = ("计算结果为:" + q);
}
} // 实现党点击转化按钮时,将输入的十进制数字转化为二进制,并显示在result的p标签内
// Some coding function binary(num, Bits) {
var resArry = [];
var xresArry = [];
i = 0;
//除2取余
for (; num > 0;) {
resArry.push(num % 2);
num = parseInt(num / 2);
i++;
}
//倒序排列
for (j = i - 1; j >= 0; j--) {
xresArry.push(resArry[j]);
}
//报错
if (Bits < xresArry.length) {
console.log("控制位小于转换位数");
}
//补0操作
if (Bits) {
for (r = xresArry.length; r < Bits; r++) {
xresArry.unshift("0");
}
}
return xresArry.join().replace(/,/g, "");
}
</script>
</body> </html>
涉及的知识点:
十进制转二进制,除2取余,倒序排列。
push()
unshift()
join()
replace()
<input placeholder="请输入">







