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

复制代码
//栈, 一种运算受限的线性表,后进先出(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;
    }
  }
复制代码

 

posted @   前端之旅  阅读(453)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示