• js 栈(进制转换)


    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <script>
            function stack(){
                item = []
                // 添加栈
                this.push = function(element){
                    item.push(element);
                }
                // 移除栈
                this.pop = function(){
                    return item.pop();
                }
                // 检查栈是否为空
                this.isEmpty= function(){
                    return (item.length == 0);
                }
                // 显示栈最上面那个元素
                this.peek = function(){
                    return item[item.length-1];
                }
            }
    
            // 二进制度转化
            function binary( decNumber ){
                var remStack = new stack();
    
                var rem , binaryString='';
    
                // 当传入的值必须大于0
                while( decNumber > 0 ){
                    rem = Math.floor( decNumber % 2 ); //  取除以2的余数,只有 0 或者 1  10/2 5余0   21/2 10-1
                    remStack.push( rem );  //  将得出的数值添加到数组当中去
                    decNumber = Math.floor( decNumber/2 )//每除一次再除一次
                }
                // 将得出的值反转
                while( !remStack.isEmpty() ){
                    // 出栈 ,从顶部开始
                    binaryString += remStack.pop().toString();
                }
                return binaryString;
            }
    
            // 其他进制的转换 --> 传入 要转换的数值, 要转换的进制
            function SysConvert( decNumber, base ){
                var remStack = new stack();
                var rem,
                baseString = '',
                digits='0123456789ABCDEF';
    
                while( decNumber > 0){
                    rem = Math.floor( decNumber % base );
                    remStack.push(rem);
                    decNumber = Math.floor( decNumber / base );
                }
                
                while( !remStack.isEmpty() ){
                    // 出栈 ,从顶部开始
                    baseString += digits[ remStack.pop() ];
                }
                return baseString;
            
            }
    
            console.log( binary(100) ); //
            console.log( SysConvert( 100, 10) )
    
            // 总结
            //  错误问题:没有写() 进行语句执行
            //           digit 少些一个0 出现了 +1 的数字
        </script>
    </body>
    </html>
  • 相关阅读:
    Vue 实例中的生命周期钩子
    公司Git实用记录
    mint-ui —— navbar和tab-container的区别
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
  • 原文地址:https://www.cnblogs.com/ar13/p/8000718.html
Copyright © 2020-2023  润新知