JS数据结构-栈

// 栈结构 有pop push top size isEmpty方法
class Stack{
  items = []
  
  pop(){
    return this.items.pop()
  }
  
  push(x){
    this.items.push(x)
  }
  
  top(){
    console.log(this.items.at(-1))	// 也可以是 console.log(this.items[this.items.length-1])
  }
  
  size(){
    return this.items.length
  }
  
  isEmpty(){
    return this.items.length === 0
  }
}

进制转换

function convert(num,scale){
    // 进制转换采用辗转相除法
    let remainder = 0   //余数
    let stack = new Stack()
    let string = ''
    let code = '0123456789ABCDEF' // 为了能转换 16进制 可以在字符串内放好A...F
    while(num>0){
      remainder = num % scale
      stack.push(remainder)
      num = Math.floor(num/scale)
    }
    while(!stack.isEmpty()){
      string += code[stack.pop()]
    }
  console.log(string)
}

convert(138,16)	 // 8A
convert(14,2)	// 1110
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寂林Lin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值