利用栈来写十进制转换函数

首先声明一个栈类

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;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容