题目
起源:“如果”能够“重来” | 百度前端技术学园
验证工具:在线进制转换 | 进制转换器 — 在线工具
Task1
实现当点击转化按钮时,将输出的十进制数字转化为二进制,并显示在 result
的 p
标签内
Task2
- 转化显示后的二进制数为 bin-bit 中输出的数字宽度,例如
dec-number
为 5 ,bin-bit
为 5 ,则转化后数字为00101
- 如果
bin-bit
小于转化后的二进制自身位数,则应用本来的位数,如dec-number
为 5 ,bin-bit
为 2 ,仍然输入101
,但同时在 console 中报个错。
解法
<input id="dec-number" type="number" placeholder="输出一个十进制非负整数" /><input id="bin-bit" type="number" placeholder="输出转化后二进制数字位数" /><button id="trans-btn">转化为二进制</button><p id="result">运算后果</p><script> /////// Task 1 const btn = document.querySelector("#trans-btn"); const result = document.querySelector("#result"); function dec2bin() { let decNumber = Number(document.querySelector("#dec-number").value); // 判断输出必须为一个非负整数 if (decNumber < 0 || !Number.isInteger(decNumber)) { alert("请输出一个非负整数!"); } // 求余 let bin = []; let remainder; while (decNumber !== 0) { remainder = decNumber % 2; decNumber = parseInt(decNumber / 2); bin.push(remainder); } let binNumber = bin.join(""); ////// Task2 let binBit = Number(document.querySelector("#bin-bit").value); if (binNumber.length <= binBit) { binNumber = binNumber.slice(0, binBit + 1); } else { console.error(`所得二进制数字位数小于输出位数`); } result.innerHTML = `运算后果:${binNumber}`; } btn.addEventListener("click", dec2bin);</script>
原文:JavaScript|十进制数转二进制