两个方法你弄清楚就好,注意第二个number.toString是Number的实例方法,而不是Object的
parseInt('100',2)
parseInt('100',10)
0xa.toString(2)
0xa.toString(10)
function string2hex(str) {
const ret = []
for(let i = 0, len = str.length; i < len; i++){
ret.push(str.charCodeAt(i).toString(16))
}
return ret.join('')
}
function hex2string(hexStr) {
const ret = []
const STEP = 2
for(let i = 0, len = hexStr.length; i < len; i += STEP){
ret.push(String.fromCharCode(Number.parseInt(hexStr.slice(i, i+STEP), 16)))
}
return ret.join('')
}
const str = '1j3kds98sd'
require('assert')(hex2string(string2hex(str)) == str)
数字相关自然想到用Number的方法,String往Number转,用Number的静态方法parseInt;Number往String转,用Number的实例方法
两个方法中radix,一个是对源输入格式的描述,另一个是对目标输出格式的描述