JavaScript下的进制转换
//十进制转其他进制
var num = 99;
console.log('十进制: ', num);
console.log('八进制:', (num).toString(8))
console.log('十六进制:', (num).toString(16))
console.log('三十二进制:', (num).toString(32))
//其他转十进制
var x = '110';
console.log('二进制:110,其十进制为:', parseInt(x, 2));
console.log('八进制:110,其十进制为:', parseInt(x, 8));
console.log('十六进制:110,其十进制数为:', parseInt(x, 16));
//其他转其他
//先用parseInt转成十进制再用toString转到目标进制
/*
fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串。
注意:该方法是 String 的静态方法,字符串中的每个字符都由单独的 Unicode 数字编码指定。使用语法: String.fromCharCode()。
*/
console.log(String.fromCharCode(parseInt(141, 8)))
console.log('十六进(FF)转二进制:', parseInt('FF', 16).toString(2));
/*
十进制: 99
八进制: 143
十六进制: 63
三十二进制: 33
二进制:110,其十进制为: 6
八进制:110,其十进制为: 72
十六进制:110,其十进制数为: 272
a
十六进(FF)转二进制: 11111111
*/
1. Number.toString()
Number.toString()函数返回表示该数字的指定进制形式的字符串。
该函数属于Number对象,所有主流浏览器均支持该函数。
语法
numberObject.toString( [ radix ] )
参数 | 描述 |
---|---|
radix | 中等可选/Number类型指定的基数(进制数),默认为10 |
参数radix支持 [2, 36] 之间的整数。
例如:参数值为2,则表示二进制;为8,则表示八进制;为16,则表示十六进制。
-- 如果省略参数radix,则默认为10(十进制)。
-- 对于不在 [2, 36] 之间的整数,小数部分会被直接丢掉,只保留整数部分
(2).toString(1.9)
/*
VM442:1 Uncaught RangeError: toString() radix argument must be between 2 and 36
at Number.toString (<anonymous>)
at <anonymous>:1:5
(anonymous) @ VM442:1
*/
(2).toString(2.1) //"10"
(2).toString(2.9) // "10"
返回值
numberObject.toString()函数的返回值为String类型,返回该数字指定进制形式的字符串。