文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用JavaScript怎么将10进制转换成36进制

2023-06-14 13:54

关注

这期内容当中小编将会给大家带来有关使用JavaScript怎么将10进制转换成36进制,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

JavaScript可以做什么

1.可以使网页具有交互性,例如响应用户点击,给用户提供更好的体验。2.可以处理表单,检验用户的输入,并提供及时反馈节省用户时间。3.可以根据用户的操作,动态的创建页面。4使用JavaScript可以通过设置cookie存储在浏览器上的一些临时信息。

数值准备

理清楚它的组成后,开始思考,一个10进制数经过怎样的转化可以成为一个36进制数呢? 我们需要先准备一个有36个数值的“仓库”数组,这个数组用来存放36进制数的所有数值,当10进制数需要进行进制转换的时候,根据数值进入这个仓库取出36进制数的值,在仓库中,0-9代表36进制数的0-9,10-35代表36进制数的a-z。代码如下

function getNums36() {  var nums36 = [];  for(var i = 0; i < 36 ; i++) {    if(i >= 0 && i <= 9) { // 存入0-9的数值      nums36.push(i)     } else {  // 存入a-z的数值      nums36.push(String.fromCharCode(i + 87));  // ASCII码转换    }  }  console.log(nums36,'--------');  // 检查仓库的值  return nums36; }

使用JavaScript怎么将10进制转换成36进制

实现

仓库构建好后,我们开始分解进制转化的过程。

设立一个while循环,while内部首先对 n 值做36的取余处理,得到 res ,

var res = n % 36;

这里是要获得这个10进制数转换为36进制数的最低位的值,将res抛入仓库中,取得36进制对应的数值,用unshift存入arr首位。

arr.unshift(nums36[res]);

最低位处理完后,我们需要对这个数进行进位,处理更高位数的值

n = parseInt(n/36);

至此,完成一轮循环

我们用while不断对 n 进行 res 的数值取余并不断进位,最后,可以将10进制数转化为36进制数

注意,此时记得将之前设置的neg的负数判断载首位加上

arr.unshift(neg)

最后,返回36进制数

return arr.join("");

代码

// 提供36位的表达 0-9 a-zfunction getNums36() {  var nums36 = [];  for(var i = 0; i < 36 ; i++) {    if(i >= 0 && i <= 9) {      nums36.push(i)    } else {      nums36.push(String.fromCharCode(i + 87));    }  }  return nums36;}function scale36(n) {  // 单独的功能函数  // 16进制数: 0-9  a-f    36进制数: 0-9  a-z     const arr = [];  var nums36 = getNums36();  // 36 10  if(!Number.isInteger(n)){//浮点数判断,目前不支持小鼠    console.warn('不支持小数转换');    return n;  }   var neg = '';  if(n < 0){//对负数的处理      neg = '-';      n = Math.abs(n)  }  while(n) {    var res = n % 36;    console.log(res,'+++++++');    arr.unshift(nums36[res]);    // 进位    n = parseInt(n/36);    console.log(n,'---------');  }  arr.unshift(neg)  return arr.join("");}console.log(scale36(20)); // 10

扩展

7进制数的实现

这套模板同样适用于10进制对其他进制的转换,我们只需要修改一下仓库的数值,这里以一道LeetCode的7进制题目为例

504. 七进制数
给定一个整数,将其转化为7进制,并以字符串形式输出。

示例 1:
输入: 100 输出: "202"

先准备7进制数的数值仓库

function getNums7() {  var nums7 = [];  for(var i = 0; i < 7 ; i++) {          nums7.push(i)     }  return nums7;}

再对取余的数值以及进位进行修改,就可以完成模板复用了

var res = n % 7;n = parseInt(n/7);代码function getNums7() {  var nums7 = [];  for(var i = 0; i < 7 ; i++) {          nums7.push(i)     }  return nums7;}var convertToBase7 = function(num) {  // 单独的功能函数    const arr = [];  var nums7 = getNums7();  var neg = '';  if(num < 0){//对负数的处理      neg = '-';      num = Math.abs(num)  }  if(num == 0) {      return  num + "";  }    while(num) {    var res = num % 7;  // 对高位数据进行截取    arr.unshift(nums7[res]);      // 进位    num = parseInt(num/7);   }  arr.unshift(neg);  return arr.join("");}

上述就是小编为大家分享的使用JavaScript怎么将10进制转换成36进制了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯