#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// 栈结构 有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
}
}

# 进制转换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

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