JS 十進制轉二進制(控制位數)

主要需求:十進制轉二進制,控制指定的位數。

詳細說明見:IFE2018之JS小任務

  1. 轉化顯示後的二進制數爲bin-bit中輸入的數字寬度。
  2. dec-number爲5,bin-bit爲5,則轉化後數字爲00101。
  3. 如果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>

Demo地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章