zoukankan      html  css  js  c++  java
  • 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:十进制转二进制推导

  • 相关阅读:
    bash实现多进程运行
    Erlang实现进程池
    Apache 和nginx支持跨域访问
    thinkphp 发送邮件
    判断PC和移动端 判断移动端系统
    check 选择框checked属性读取不到
    php使用PDO,并连接SQL
    SQL2005:由于目标机器积极拒绝,无法连接
    frozenui 移动端ui
    纯jquery 滚动评论
  • 原文地址:https://www.cnblogs.com/malong1992/p/14725064.html
Copyright © 2011-2022 走看看