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地址

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