字符a
如何表示
进制 | 值 |
---|---|
十进制 | 97 |
二进制 | 1100001 |
十六进制 | 61 |
//十进制转其他
var x=97;
console.log(x.toString(8));
console.log(x.toString(16));
//其他转十进制
var x='10';
console.log(parseInt(x,2));
console.log(parseInt(x,8));
console.log(parseInt(x,16));
ASCII码使用指定的7位或8 位二进制数组合来表示128 或256种可能的字符
时间 | GB | 微软 | Unicode |
---|---|---|---|
1981 | GB2312 | ||
1993 | GBK | ||
2000 | Unicode3.0 |
字符集规定了字符对应的数字,却没有规定如何存储 字符编码是字符集的存储方式
UTF-8的编码规则只有二条:
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 |
已知"严"的unicode是4E25(100111000100101),根据上表,可以发现4E25处在第三行的范围内(0000 0800-0000 FFFF),因此"严"的UTF-8编码需要三个字节,即格式是"1110xxxx 10xxxxxx 10xxxxxx"。然后,从"严"的最后一个二进制位开始,依次从后向前填入格式中的x,多出的位补0。这样就得到了,"严"的UTF-8编码是"11100100 10111000 10100101",转换成十六进制就是E4B8A5。