做算法机试题的过程中经常会遇到字符的比较,字符转为二进制、十六进制等的转化。时常会忘记具体的实现方法,现做一下总结帮助记忆

1.ASCII码和字符的转化

使用 charCodeAtfromCharCode

1
2
3
var str = "A";
var code = str.charCodeAt(); // charCodeAt获取字符对应的ASCII码
var str2 = String.fromCharCode(code); // String的fromCharCode方法根据ASCII获取字符

2.十进制转二进制

使用 toString(2)

1
2
var a = 5
a.toString(2) // '101'

八进制,十六进制同理,只需要将参数2改成8、16即可

1
2
3
4
var a = 64
a.toString(8) // '100'
var b = 15
b.toString(16) // 'f'

注意这里前面的数是Number类型,转化为二进制后为String类型


3.二进制转十进制

使用 parseInt(str, 2)

1
2
var a = '1100'
parseInt(a, 2) // 12

八进制,十六进制转10进制也同理,只需要将第二个参数2改为 8、16即可

1
2
3
4
5
var a = '10' // 八进制的10表示十进制的8
parseInt(a, 8) // 8

var b = 'f' // 十六进制的f表示十进制的15
parseInt(b, 16) // 15

注意这里前面的数是String类型,转化为十进制后为Number类型