主要需求:十進制轉二進制,控制指定的位數。
詳細說明見:IFE2018之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").οnclick=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>