1 整数存储
一个比特可以是0或是1,八个比特组成一个字节,全为0时代表0,全为1时代表255,即一个字节可以表示255个数字、两个字节可以表示65536个数字
2 字符存储
通过字符集ASCII来进行中转
例如 A:先根据ASCII码将A转为 65 ,再转为二进制01000001,如下图所示
3 汉字存储
ASCII字符集收录了128个字符,它的扩展字符集也只有256个,由此生出了GB2312来存储,但没有繁体字,又由此生出了BIG5,这样一直不断推出收录更多字符的字符集,不如制作一个通用的字符集,因此unicode字符集诞生了
4 多种类型结合的字符的解码编码
汉字使用Unicode编码,Unicode它为每种语言中的每个字符设定了统一且唯一的二进制编码,以满足跨语言、跨平台的要求
4.1 编码模板
注意:编号区间就为对应得十进制区间
编号 | 编码模板 | 字符大小 |
---|---|---|
[0, 127] | 0xxxxxxx | 1个字符 |
[128, 2047] | 110xxxxx 10xxxxxx | 2个字符 |
[2048, 65535] | 1110xxxx 10xxxxxx 10xxxxxx | 3个字符 |
4.2 解码
不知道对应的汉字的 Unicode 十进制编码的可以在这网站在线查找
汉字字符集编码查询
例如:01001000 11100110 10011101 10101000
一个一个来解:
01001000
这个字节最高位是0,那他就占用了一个字符,对照编码模板:除去标识位0,那剩余得7位就是该字符得二进制编号,1001000 对应十进制72对应字符H
11100110
这个字节以1110开头,那他就占用了三个字节,它要和后面两个以10开头得字节共同表示一个字符。如下为解码过程:
11100110 10011101 10101000
套入模板得:除去标识位1110 10 10 将剩下得三部分组合起来就得到了该字符得二进制编号01100111 01101000
,它对应得十进制为 26472 对应汉字 杨
最后解码后为: H杨
4.3 编码
例:对 h鸡 进行编码,鸡对应得Unicode编码为40481
h:h对应十进制ASCII码为 104 ,根据编码模板,它是在区间编号[0, 127]范围内,即使用 0xxxxxxx
编码模板,带入得 01101000
鸡:该汉字对应的Unicode编码为40481,它是在区间编号[2048, 65535]范围内,即使用 1110xxxx 10xxxxxx 10xxxxxx
编码模板,40481的二进制为1001111000100001
,带入得 11101001 10111000 10100001
最后编码后为:01101000 11101001 10111000 10100001
01101000 | 11101001 10111000 10100001
h 鸡
第一段表示h,第二、三、四段表示鸡