1. 程式人生 > >JS十進位制轉二進位制(控制位數)

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>IFE ECMAScript</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>

function dec2bin(decNumber,bit) {
// 在這裡實現你的轉化方法,注意需要判斷輸入必須為一個非負整數
// 這裡是上一個任務的實現
if (decNumber<0) {
alert("請輸入一個非負整數")
} else {
var q = binary(decNumber,bit);
document.getElementById("result").innerHTML="運算結果為:"+ q;
}
}
//實現控制位數的二進位制轉換
function binary (num, Bits) {
var resArry = [];
var xresArry = [];
i=0;
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("位數小於二進位制位數")
}
if (Bits) {
for(var r = xresArry.length; r < Bits; r++) {
xresArry.unshift(0);
}
}
return xresArry.join().replace(/,/g, '');
}
document.getElementById("trans-btn").onclick=function(){
var d = parseFloat(document.getElementById("dec-number").value);
var b =parseFloat(document.getElementById("bin-bit").value);
dec2bin(d,b);
}
// 實現黨點選轉化按鈕時,將輸入的十進位制數字轉化為二進位制,並顯示在result的p標籤內
// 新的需求是,轉化顯示後的二進位制數為bin-bit中輸入的數字寬度,例如
// dec-number為5,bin-bit為5,則轉化後數字為00101
// 如果bin-bit小於轉化後的二進位制本身位數,則使用原本的位數,如dec-number為5,bin-bit為2,依然輸出101,但同時在console中報個錯
</script>
</body>
</html>
---------------------
作者:Aimerence
來源:CSDN
原文:https://blog.csdn.net/qq_36301072/article/details/80379122
版權宣告:本文為博主原創文章,轉載請附上博文連結!