一. 进制转换
JavaScript 全局函数 parseInt(string, radix); //TODO详解
string 必需。要被解析的字符串。
radix 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
1. 示例一,将二进制、八进制、十六进制数字解析为十进制数字
parseInt(0101,2);//NaN
parseInt("0101")//101
parseInt("0101",2)//5
parseInt("0101",8)//65
parseInt("0101",10)//101
parseInt("0101",16)//257
2. 示例二,将十进制数字解析为二进制、八进制、十六进制数字
var x=999;
x.toString(2);//"1111100111"
x.toString(8);//"1747"
x.toString(16);//"3e7"
3. 示例三,二进制、八进制、十六进制数字相互转换(原理,先转化为十进制)
parseInt('ff',16).toString(2);//十六进制"ff" 转 二进制 "11111111"
parseInt("11111111",2).toString(8);//二进制"11111111" 转 八进制 "377"
二. 字符串 和 十六进制 互相转换
- 字符串转换为十六进制
//先将字符串编码为Unicode码,然后再将Unicode码的数字转化为 十六进制
var str = "wanshaobo";
"wanshaobo".charCodeAt(i);//119 97 110 ...
"wanshaobo".charCodeAt(i).toString(16);//77 61 6e 73 68 61 6f 62 6f
- 十六进制转换为字符串
//先将十六进制转化十进制,然后再将十进制的Unicode码转化为 字符串
var hexStr = "77616e7368616f626f";
hexStr.match(/[\da-f]{2}/gi) ["77", "61", "6e", "73", "68", "61", "6f", "62", "6f"]
parseInt(arr[i],16)//119 97 110 ...
String.fromCharCode(119);//w
String.fromCharCode(97);//a
String.fromCharCode(110);//n
...