- 将数字、字母、符号共128个字符用7位二进制编码表示
- 可印刷字符: 32-126, 其余为控制、通信字符
- 汉字+各种符号共7445个
- 区位码: 用两个字节表示一个汉字, 每字节用七位码, 并将汉字和图形符号排列在一个94行94列的二维代码表中. 区位码是4位十进制数, 前2位是区码, 后2位是位码
- 国标码 = (区位码)16 + 2020H
- 汉字内码 = (国标码)16 + 8080H
https://blog.csdn.net/zrf2112/article/details/50718684
- 为啥要将区位码转化为国标码?
- 汉字编码之前, 已经有了标准的ASCII, 开发者只沿用了ASCII中32个控制字符其他ASCII被覆盖. 通过32D=20H的关系, 不难发现, 加上2020H是为了绕开ASCII的控制字符
- 为啥要将国标码转化为机内码?
- 国标码中除了前面32个控制字符外, 其他ASCII内容被覆盖, 这使得使用者在使用采用ASCII码编码的网页或者文本内容时不能兼容, 只能看到乱码. 为了解决这个问题要在国标码的基础上补充ASCII的32个控制字符外的其他字符. 已知道标准的ASCII码最高位为0, 国标码的最高位也是0. 那么只需要在国标码的基础上将最高位改为1即可. 通过10000000B=80H的关系, 不难发现, 加上8080H是为了在国标码基础上解决ASCII字母等符号的兼容性问题
- 输入: 输入编码, 如“内”汉字, 举个例子, 输入编码为“nei2”, 将输入编码转化为国标码, 在通过系统软件将国标码转化为机内码存储在计算机中
- 输出: 汉字字形码. 先将机内码转化为国标码, 再转化为字形码
- 某计算机按字节编址(每个字节对应1B), 从地址为2的单元开始, 存储字符串“abc”
61H | 62H | 63H | 00H |
---|
很多语言中, 将'\0'作为字符串结束的标志
- 某计算机按字节编址(每个字节对应1B), 从地址为2的单元开始, 存储字符串“abc啊”. “啊”的机内码为B0 A1H
在所有计算机中, 多字节数据都被存放在连续的字节序列中. 根据数据中各字节排列顺序的不同, 可能有“大端模式”和“小端模式”
- 大端模式: 将数据的最高有效字节存放在低地址单元中
61H | 62H | 63H | 00H | B0H | A1H | 00H |
---|
- 小端模式: 将数据的最高有效字节存放在高地址单元中
61H | 62H | 63H | 00H | A1H | B0H | 00H |
---|