zoukankan      html  css  js  c++  java
  • 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
            }
  • 相关阅读:
    数字证书原理(转)
    python update from 2.6 to 2.7
    python uwsgi 部署以及优化
    uWSGI配置(转 )
    Python程序的性能分析指南(转)
    mysql 暴力破解 root账号密码
    VMware虚拟机实用经验总结十一条
    小技巧之指定refer
    cookie和session
    web相关
  • 原文地址:https://www.cnblogs.com/shewill/p/15793490.html
Copyright © 2011-2022 走看看