数据结构应用_十进制二进制转换

//栈, 一种运算受限的线性表,后进先出(LIFO)
  class Stack {
    constructor () {
      this.items = []
    }
    // 进栈
    enterStack (elem) {
      return this.items.push(elem)
    }
    // 出栈
    outStack () {
      return this.items.pop()
    }
    // 查看栈顶元素,仅仅是查看元素,不进行任何操作
    peek () {
      return this.items[this.items.length - 1]
    }
    // 栈是否为空
    isEmpty () {
      return this.items.length <= 0
    }
    // 清空栈
    clear () {
      this.items = []
      return true
    }
    // 栈内元素个数
    size () {
      return this.items.length
    }
  }
  //十进制转换
  function decimalConvert (decNum, bin) {
    let stack = new Stack()
    let remainder = 0
    let result = ''
    while (decNum > 0) {
      remainder = decNum % bin
      decNum = parseInt(decNum / bin)
      stack.enterStack(binary(remainder))
    }

    while (!stack.isEmpty()) {
      result += stack.outStack()
    }
    return result

  }
  let converted = decimalConvert(999, 16)
  console.log(converted)
  function binary(num){
    switch(num) {
      case 10: return 'A';
      case 11: return 'B';
      case 12: return 'C'
      case 13: return 'D';
      case 14: return 'E';
      case 15: return 'F';
      default: return num;
    }
  }

猜你喜欢

转载自www.cnblogs.com/JunLan/p/12325425.html
今日推荐