js使用栈实现十进制转为二进制

1、定义一个栈的类

    class Stack{
            constructor(){
                this.items=[]
            }
            // 从栈顶添加元素
            push(ele){
                this.items.push(ele)
            }
            // 从栈移除元素
            pop(){
                return this.items.pop()
            }
            // 查看栈顶元素
            peek(){
                return this.items[this.items.length-1]
            }
            // 检查栈是否为空
            isEmpty(){
                return this.items.length === 0
            }
            // 清空栈元素
            clear(){
                this.items = []
            }
        }

2、十进制转二进制的算法

  以58为例:

   58 / 2 = 29 余 0  ; 0进栈

   29 / 2 = 14 余 1 ;   1进栈

   14 / 2 = 7 余 0;  0 进栈

   7 / 2 = 3 余 1;     1 进栈

   3 / 2 = 1 余 1; 1进栈

   1 / 2 = 0 余 1 ;  1进栈

  所以结果为 111010

 function decimaToBinary(decNumber){
            const remSatck = new Stack()
            let number = decNumber;
            let rem;
            let binaryString = '';
            // console.log(number)
            while (number > 0){
                console.log(number)
                rem = Math.floor(number % 2);
                remSatck.push(rem)
                number = Math.floor(number / 2);
            }
            while (!remSatck.isEmpty()){
                binaryString+=remSatck.pop().toString()
            }
            return binaryString
        }
原文地址:https://www.cnblogs.com/shewill/p/15793490.html