题目
Task1
实现当点击转化按钮时,将输入的十进制数字转化为二进制,并显示在 result
的 p
标签内
Task2
- 转化显示后的二进制数为 bin-bit 中输入的数字宽度,例如
dec-number
为 5 ,bin-bit
为 5 ,则转化后数字为00101
- 如果
bin-bit
小于转化后的二进制本身位数,则使用原本的位数,如dec-number
为 5 ,bin-bit
为 2 ,依然输出101
,但同时在 console 中报个错。
解法
html
<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 1const 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 remainderwhile (decNumber !== 0) {remainder = decNumber % 2decNumber = parseInt(decNumber / 2)bin.unshift(remainder)}let binNumber = bin.join('')////// Task2let binBit = Number(document.querySelector('#bin-bit').value)if (binNumber.length >= binBit) {binNumber = binNumber.slice(0, binBit + 1)} else {binNumber = binNumber.padStart(binBit, '0')}result.innerHTML = `运算结果:${binNumber}`}btn.addEventListener('click', dec2bin)</script>