• 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
            }
  • 相关阅读:
    【强烈推荐】 超漂亮的仿腾讯弹出层效果(兼容主流浏览器<转>;
    必须掌握的八个【cmd 命令行】
    grep命令的用法
    sed 命令的用法1
    Paste命令的用法
    uniq命令的用法
    join命令的用法
    Sort命令的用法
    cut命令的用法
    tr命令学习
  • 原文地址:https://www.cnblogs.com/shewill/p/15793490.html
Copyright © 2020-2023  润新知