为什么要十进制转二进制?
在现实生活中,我们主要使用十进制,但是在计算机科学中,二进制非常重要,因为计算机里的所有内容都是用二进制数字表示的(0和1),没有十进制和二进制相互转化的能力,与计算机交流就会很困难
如何实现十进制转换二进制?
要把十进制转换二进制,我们可以将该十进制数字和2整除(二进制是满二进一),之到结果为0为止,比如100转换成二进制为1100100
100
100 / 2 余数 0
50 / 2 余数 0
25 / 2 余数 1
12 / 2 余数 0
6 / 2 余数 0
3 / 2 余数 1
1 / 2 余数 1
结果:1100100
可以看出,结果输出是先进后出的,可以用栈结构来实现
代码实现
// 函数:将十进制转换为二进制
function dec2bin(decNumber) {
// 1.完整栈定义
let stack = new Stack()
// 2.循环操作
while (decNumber > 0) {
// 2.1 获取余数,并将余数压入栈中
stack.push(decNumber % 2)
// 2.2 获取整除后的结果,作为下一次运行的数字
decNumber = Math.floor(decNumber / 2)
}
// 3.从栈中取出0和1,并连接起来
let binaryString = ''
while (!stack.isEmpty()) {
binaryString += stack.pop().toString()
}
return binaryString
}