js利用栈实现十进制转二进制数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>栈结构</title>
</head>
<body>
    <script>
        function Stack(){
            //栈中的属性
            this.item=[];

            //栈的相关操作
            //1.将元素压入栈
            Stack.prototype.push=function(element){
                this.item.push(element)
            }


            //2.从栈中取出元素
            Stack.prototype.pop=function(){
               return this.item.pop()
            }

            //3.查看一下栈顶元素
            Stack.prototype.peek=function(){
               return this.item[this.item.length -1]
            }

            //4.判断栈是否为空
            Stack.prototype.isEmpty=function(){
               return this.item.length === 0
            }

            //5.获取栈中元素的个数
            Stack.prototype.size=function(){
               return this.item.length
            }

            //6.toString方法
            Stack.prototype.toString=function(){
                    //20 10 12 8 7
                    let resultsString = ''
                 for(var i =0; i<this.item.length;i++){
                    resultsString += this.item[i] +' '
                 }

                 return resultsString
            }

        }

        //栈的使用
        // let s = new Stack();
        // s.push(20)
        // s.push(10)
        // s.push(8)
        // s.push(7)

        // console.log(s.pop());
        // console.log(s.peek());
        // console.log(s.isEmpty());
        // console.log(s.size());
        // console.log(s.toString());


        //函数 十进制转二进制
        function dec2bin(decNumber){
            //1.定义栈对象

            let stack = new Stack()

            //循环操作
            while(decNumber > 0){
                //2.1 获取余数 并放入栈中
                stack.push(decNumber % 2)

                //2.2 获取整除后的结果 向下取整
                decNumber = Math.floor(decNumber/2)
            }

            //3.从栈中取出0和1
            var binaryString =''
            while(!stack.isEmpty()){
                binaryString += stack.pop() 
            }
            return binaryString
        }

        dec2bin(100)
        dec2bin(1000)
        console.log(dec2bin(100));
        console.log(dec2bin(1000));

    </script>
</body>
</html>

  打印结果

PS:十进制转二进制推导

原文地址:https://www.cnblogs.com/malong1992/p/14725064.html