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
            }
  • 相关阅读:
    web控件文本框不响应回车事件
    封装的概念
    js 中eval的使用
    C#调用存储过程
    javascript和C#对URI编码
    比较好的博客日历控件
    扩展方法实例
    C# 集合类
    数据访问层的几种数据库连接方式
    aspnetpage分页控件的使用
  • 原文地址:https://www.cnblogs.com/shewill/p/15793490.html
Copyright © 2011-2022 走看看