
/**
* 数组实现栈结构
*/
function Stack() {
//数组模拟栈
this.items = []
//压栈
Stack.prototype.push = function(elem) {
this.items.push(elem)
}
//出栈
Stack.prototype.pop = function() {
return this.items.pop()
}
//获取栈顶元素
Stack.prototype.peek = function() {
return this.items[this.items.length - 1]
}
//判断栈是否为空
Stack.prototype.isEmpty = function() {
return this.items.length === 0
}
//输出栈内数据
Stack.prototype.toString = function() {
return this.items.toString()
}
//清空栈
Stack.prototype.clear = function() {
this.items = []
}
//获取栈的大小
Stack.prototype.size = function() {
return this.items.length
}
}/**
* 将十进制转成二进制
* @param decNumber 十进制
* @return binString 二进制
*/
function dec2bin(decNumber) {
//实例化栈结构
let stack = new Stack()
/**
* 十进制除2取余 将余数压入栈顶
* 十进制除2的商 赋值给十进制进行下一次运算
*/
while(decNumber > 0) {
stack.push(decNumber % 2)
decNumber = Math.floor(decNumber / 2)
}
//取出栈顶元素拼接字符串 直到栈为空
let binString = ''
while(!stack.isEmpty()) {
binString += stack.pop()
}
return binString
}