JS之进制转换(十进制转8,12,36进制)
1.toString() 方法 :把数字转化成字符串
number.toString(radix)
radix:可选。规定表示数字的基数,是 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。但是要注意,如果该参数是 10 以外的其他值,则 ECMAScript 标准允许实现返回任意值。
- 2 - 数字以二进制值显示
- 8 - 数字以八进制值显示
- 16 - 数字以十六进制值显示
例子:
var num = 15;
var a = num.toString();
var b = num.toString(2);
var c = num.toString(8);
var d = num.toString(16);
console.log('这是十进制的15转换的2进制' + b)
console.log('这是十进制的15转换的8进制' + c)
console.log('这是十进制的15转换的16进制' + d)
2.32进制转换
思路: 把需要转换的数进行 36的除法运算,余数不断除36,出来的数进行字符串的拼接
那我们开始实现:
function getNums36() {
var nums36 = [];
for (var i = 0; i < 36; i++) {
if (i >= 0 && i <= 9) {
// 数字属于1 -9 取值
nums36.push(i);
} else {
// 如果不是1到9,从字母中取 :String.fromCharCode(i + 87)
nums36.push(String.fromCharCode(i + 87));
}
}
return nums36;
}
//十进制数转成36进制
function scale36(n){
var arr = [];
var nums36 = getNums36();
while(n){
var res = n % 36;
//作为下标,对应的36进制数,转换成
arr.unshift(nums36[res]);
//去掉个位
n = parseInt(n / 36);
}
return arr.join("");
}

浙公网安备 33010602011771号