🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
目录 (づ ̄ 3 ̄)づ=> [TOC] ## toString ``` /** * toString * 能让二进制8进制16进制之间相互转换 */ console.log(0b10111000.toString(16)); //b8 console.log(0x123.toString(2)); //100100011 console.log(0123.toString(2)); //1010011 ``` >[danger] - 字符串形式的数字不能进行进制转换,会原样输出 > - console.log((10).toString(2)) 10进制转为其它时必须包一个括号 ## parseInt ``` /** * 能将任意进制转换为10进制,第二个参数表示要解析的进制是多少进制,默认为10 */ //使用了0b 0x 这种表示进制的前缀会自动匹配对应进制 console.log(parseInt(0123)); console.log(parseInt(0x123)); //会自动匹配对应进制 //在不使用0b 0x这种进制前缀时,可以手动在第二个参数选择使用哪种进制解析 console.log(parseInt(100,2)); //4 //但最终解析成的都是十进制表示的数 ``` ## 进制之间可直接比较 ``` 0xff > 0b00000001 ? console.log(true):console.log(false); ``` ## string_decoder解决乱码问题 ``` /** * string_decoder * .write方法 */ //解决乱码 let s = require('string_decoder'); let s = new StringDecoder(); console.log(sd.write(buf10)); //write的时候会判断是不是一个字符,如果是的话就输出,不是的话则缓存在对象内部,等下次write的时候会把前面缓存的字符加到第二次write时 ``` ## 如何将一个unicode码转换成utf8 ``` /** * 1.如何把一个unicode码转成utf8编码 * 传进去一个unicode码,返回一个utf8编码 万 4E07 * Unicode符号范围 | UTF-8编码方式 (十六进制) | (二进制) ----------------------+--------------------------------------------- 0000 0000-0000 007F | 0xxxxxxx 0000 0080-0000 07FF | 110xxxxx 10xxxxxx 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx **/ function transfer(number) { const a = parseInt('7f'); const b = parseInt('07ff'); const c = parseInt('8000000ffff'); const d = parseInt('100000010ffff'); const v = parseInt(number); let bit = v.toString(2); if(v<=a){ return bit.toString(16); }else if(v>a&&v<=b){ let arr = ["110", "10"]; arr[1] += bit.substring(bit.length-6); arr[0] += bit.substring(0,bit.length-6).padStart(5,'0'); return arr.map(item=>parseInt(item,2).toString(16)); } else if(v>b&&v<=c){ let arr = ["1110", "10", "10"]; arr[2] += bit.substring(bit.length-6); arr[1] += bit.substring(bit.length-12,bit.length-6); arr[0] += bit.substring(0,bit.length-12).padStart(4,'0'); return arr.map(item=>parseInt(item,2).toString(16)); }else if(v>c&&v<=d){ let arr = ["11110","1110", "10", "10"]; arr[3] += bit.substring(bit.length-6); arr[2] += bit.substring(bit.length-12,bit.length-6); arr[1] += bit.substring(bit.length-18,bit.length-12); arr[0] += bit.substring(0,bit.length-12).padStart(3,'0'); return arr.map(item=>parseInt(item,2).toString(16)); }else{ return new Error('您输入的数字超过了范围'); } } ``` ## BOM ![](https://box.kancloud.cn/8c00369f5ad484ef004b3083421bcd4d_504x270.png)