这期内容当中小编将会给大家带来有关使用JavaScript怎么将10进制转换成36进制,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
JavaScript可以做什么
1。可以使网页具有交互性,例如响应用户点击,给用户提供更好的体验。 2 .可以处理表单,检验用户的输入,并提供及时反馈节省用户时间。 3 .可以根据用户的操作,动态的创建页面。 4使用JavaScript可以通过设置饼干存储在浏览器上的一些临时信息。
数值准备
理清楚它的组成后,开始思考,一个10进制数经过怎样的转化可以成为一个36进制数呢?我们需要先准备一个有36个数值的“仓”库数组,这个数组用来存放36个进制数的所有数值,当10进制数需要进行进制转换的时候,根据数值进入这个仓库取出36进制数的值,在仓库中,0 - 9代表36进制数的0 - 9、10 - 35代表36进制数的无所不包的。代码如下
function getNums36 (), { var 才能;nums36 =, []; ,,(var 小姐:=,0;,小姐:& lt;, 36,,,我+ +),{ ,,,如果,我的在=,0,,,,小姐:& lt;=, 9),{,//存入0 - 9的数的值 ,,,,,nums36.push (i), ,,,},else {//,才能存入所有的数的值 ,,,,,nums36.push (String.fromCharCode(小姐:+,87));,,//,ASCII码转换 ,,,} ,,} console.log才能(nums36 & # 39; - - - - - - - - - - & # 39;);,,//,检查仓库的值 nums36; return 才能; }
实现
仓库构建好后,我们开始分解进制转化的过程。
- <李>
首先对传入的10进制数进行检测,先进行浮点数判断,由于这里不讨论浮点数的进制转换,所以直接返回。其次,进行负数的检测和处理,如果n为负数,调用Math.abs()方法将n转化为正数。
李> <李>检测完成后,开始进行转换
李>设立一个而循环,而内部首先对n值做36的取余处理,得到res,
var res =, n %, 36;
这里是要获得这个10进制数转换为36进制数的最低位的值,将res抛入仓库中,取得36进制对应的数值,用平移存入arr首位。
arr.unshift (nums36[物]);
最低位处理完后,我们需要对这个数进行进位,处理更高位数的值
n =,方法(n/36);
至此,完成一轮循环
我们用而不断对n进行res的数值取余并不断进位,最后,可以将10进制数转化为36进制数
注意,此时记得将之前设置的底片的负数判断载首位加上
arr.unshift(底片)
最后,返回36进制数
return arr.join (“;”);
代码
//,提供36位的表达,0-9 a - z function getNums36 (), { var 才能;nums36 =, []; ,,(var 小姐:=,0;,小姐:& lt;, 36,,,我+ +),{ ,,,如果,我的在=,0,,,,小姐:& lt;=, 9), { ,,,,,nums36.push(我) ,,,},{else ,,,,,nums36.push (String.fromCharCode(小姐:+,87)); ,,,} ,,} return 才能;nums36; } function scale36 (n), {//才能,单独的功能函数//才能,16进制数:,0-9 , a-f ,,, 36进制数:,0-9 , a-z ,, const 才能;arr =, []; var 才能;nums36 =, getNums36 ();//才能,36,10 如果才能(! Number.isInteger (n)){//浮点数判断,目前不支持小鼠 ,,,console.warn(& # 39;不支持小数转换& # 39;); ,,,return n; ,,}, var 才能;neg =, & # 39; & # 39;; 如果才能(n & lt;, 0){//对负数的处理 ,,,,,neg =, & # 39; & # 39;; ,,,,,n =, Math.abs (n) ,,} 而才能(n), { ,,,var res =, n %, 36个; ,,,console.log (res, & # 39; + + + + + + + & # 39;); ,,,arr.unshift (nums36[物]); ,,,//,进位 ,,,n =,方法(n/36); ,,,console.log (n, & # 39; - - - - - - - - - - - - - - - - # 39;); ,,} arr.unshift才能(否定) return 才能arr.join (“;”); } console.log (scale36 (20));,//, 10
扩展
7进制数的实现
这套模板同样适用于10进制对其他进制的转换,我们只需要修改一下仓库的数值,这里以一道LeetCode的七进制题目为例
504。七进制数
给定一个整数,将其转化为七进制,并以字符串形式输出。