JavaScript进制数之间的互相转换

 更新时间:2022年05月18日 10:59:22   作者:​ penn6699   ​  
这篇文章主要介绍了JavaScript进制数之间的互相转换,进制转换是人们利用符号来计数的方法,下文基于JavaScript实现进制数之间的转换,有一定的知识性参考价值,需要的小伙伴可以参考一下

前言:

进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。位权是指,进位制中每一固定位置对应的单位值。

一、十进制的数化为k进制的数

/**
 * 十进制的数化为k进制的数【返回数组的index=0位置是最高位】(取k取余法)
 * @num 10进制数
 * @k k
 * @returns k进制数序列
 */
function ckqy(num,k) {
    let y = [];
    while (num > 0) {
        let s = Math.floor(num / k);
        let _y = num % k;
        //console.log(num + " ÷ " + k + " = " + s + " ··· " + _y);
        if (s == 0)
        {
            y.push(num);
            num = 0;
        }
        else
        {
            y.push(_y);
            num = s;
        }
    }
    return y.reverse();
}

二、k进制的数化为十进制的数

/**
 * k进制的数化为十进制的数(乘幂相加法)
 * @kArray k进制数序列
 * @k k
 * @returns 十进制的数
 */
function kTo10(kArray,k){
    let v10=0;
    let kArrayLen=kArray.length;
    for(let ind=0; ind<kArrayLen; ind++){
        v10 += kArray[ind] * Math.pow(k,kArrayLen - 1 - ind);
    }
    return v10;
}

三、例题

最近在刷面试题的时候看到一道进制转换题,
写完才发现可以用js的方法直接转换,这是自己总结的一些方法

1.其它进制转换为十进制数据

//可以直接用parseInt
let num = parseInt(n1,n2);
//n1:是需要转换为10进制的数
//n2:是被转换数据的进制值,如2,8,16等。

例如将十六进制的‘AA’转为十进制数据:

//十六进制的数:AA  =>  十进制的数:170
let num = parseInt('AA',16);    //AA和0xAA都可,此时num = 170

2.十进制数据转换为其它进制

例如将十进制的170转为十六进制的数据

//十进制的数:170   =>    十六进制的数:AA  
let num1=parseInt("170");//如果这个数是字符串格式的,需要执行这一步
console.log(num1);   //  170
//toString里的参数可以是2,8,16等.设置转换10进制数据到对应进制格式,本例是将num转成16进制数据
let num2=num1.toString(16);
console.log(num2);   //aa

3.其它进制之间的相互转换

例如将十六进制的’AA‘转为二进制的数据

  • 首先将十六进制转换为十进制数据
  • 然后再将所得的十进制数据转为二进制数据

小结:进制之间的转换都是先将其他进制数据转为十进制,再用转好的十进制数据转为其他进制数据

//首先将十六进制的数:AA  =>  十进制的数:170
let num1 = parseInt('AA',16);    //AA和0xAA都可
console.log(num1);  // 170
let num2 = num1.toString(2);
console.log(num2);   //10101010

到此这篇关于JavaScript进制数之间的互相转换的文章就介绍到这了,更多相关JavaScript进制转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaScript监听键盘事件代码实现

    JavaScript监听键盘事件代码实现

    这篇文章主要介绍了JavaScript监听键盘事件代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 详解js中的几种常用设计模式

    详解js中的几种常用设计模式

    这篇文章主要介绍了js中的几种设计模式,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • JavaScript实现简单的音乐播放器

    JavaScript实现简单的音乐播放器

    这篇文章主要为大家详细介绍了JavaScript实现简单的音乐播放器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • JS组件Bootstrap实现弹出框效果代码

    JS组件Bootstrap实现弹出框效果代码

    这篇文章主要介绍了JS组件Bootstrap实现弹出框效果代码的相关资料,对弹出框感兴趣的小伙伴们可以参考一下
    2016-04-04
  • TypeScript中的方法重载详解

    TypeScript中的方法重载详解

    这篇文章主要给大家介绍了关于TypeScript中方法重载的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用TypeScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • 有效提高JavaScript执行效率的几点知识

    有效提高JavaScript执行效率的几点知识

    这篇文章主要介绍了有效提高JavaScript执行效率的几点知识,本文从JavaScript函数、JavaScript作用域、JavaScript字符串、JavaScript DOM操作、DOM重绘、DOM访问、DOM遍历等方面讲解了提高JavaScript执行效率的小技巧,需要的朋友可以参考下
    2015-01-01
  • JS前端开发模拟虚拟dom转真实dom详解

    JS前端开发模拟虚拟dom转真实dom详解

    这篇文章主要为大家介绍了JS前端开发模拟虚拟dom转真实dom详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • webpack学习教程之前端性能优化总结

    webpack学习教程之前端性能优化总结

    webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX)、coffee、样式(含less/sass)、图片等都作为模块来使用和处理。这篇文章主要给大家总结介绍了关于webpack学习教程之前端性能优化的相关资料,需要的朋友可以参考下。
    2017-12-12
  • javascript封装addLoadEvent实现页面同时加载执行多个函数的方法

    javascript封装addLoadEvent实现页面同时加载执行多个函数的方法

    这篇文章主要介绍了javascript封装addLoadEvent实现页面同时加载执行多个函数的方法,实例分析了onload事件执行的原理与同时执行多个函数功能的实现技巧,需要的朋友可以参考下
    2016-07-07
  • Javascript对象中关于setTimeout和setInterval的this介绍

    Javascript对象中关于setTimeout和setInterval的this介绍

    Javascript对象中关于setTimeout和setInterval的this介绍,需要的朋友可以参考下
    2012-07-07

最新评论