栈,进制转换

98 阅读1分钟
        //创建一个栈
	function Stack(){
		// 这个栈用数组
		let items=[];
		// 添加一个元素到栈顶
		this.push=item=>items.push(item);
		//移除栈顶元素
		this.pop=()=>items.pop();
		// 返回栈顶元素
		this.peek=()=>items[items.length-1];
		// 如果栈里没有元素返回true,否则返回false
		this.isEmpty=()=>items.length===0
		// 清除所有栈里的元素
		this.clear=()=>items=[]
		// 返回栈的长度
		this.size=()=>items.length
	}
//默认二进制
function dev2(dev10,base=2){
		// 生成栈
		let r=new Stack()
		let rem
		let s=''
                let digits = '0123456789ABCDEF';
		 while(dev10>0){
		 	// 除余得到结果
		 	rem=Math.floor(dev10%base)
		 	// 添加到栈顶
		 	r.push(rem)
		 	// 除base
		 	dev10=Math.floor(dev10/base)
		 }
                 //从栈顶拿出
		 while(!r.isEmpty()){
		 	s+=digits[r.pop()]		 
                        }
		console.log(s);
		return s
	}