首先声明一个栈类
class Stack {
constructor (items) {
this.items = Array.isArray(items) ? items : []
}
push(element) {
this.items.push(element)
}
pop() {
return this.items.pop()
}
isEmpty() {
return this.items.length == 0
}
peek () {
return this.items[this.items.length - 1]
}
clear () {
this.items = []
}
size () {
return this.items.length
}
print() {
console.log(this.items.toString())
}
}
再写一个通用方法
// 通用十进制转换进制算*
/*
* @decNumber:需要转换的十进制数组
* @ base:需要转换的进制
*/
function baseConverter(decNumber, base) {
var remStack = new Stack(),
rem,
baseString = '',
digits = '01234567890ABCDEF';
while (decNumber > 0) {
rem = Math.floor(decNumber % base);
remStack.push(rem);
decNumber = Math.floor(decNumber / base)
}
while (!remStack.isEmpty()) {
baseString += digits[remStack.pop()];
}
return baseString;
}
网友评论