第二章 数据的表示和运算 2.1.3 字符与字符串 [计算机组成原理笔记]

第二章 数据的表示和运算 2.1.3 字符与字符串


本笔记参考书目:

  1. 计算机组成原理(第六版.立体化教材)白中英、戴志涛
  2. 2021王道计算机组成原理视频公开课

本节重点

  • ASCII码/汉字编码
  • 字符串在内存中的表示

转载请注明文章来源


ASCII码

英文中,数字/字母/符号 一共128个字符,只需要7位二进制编码即可表示( 2 7 = 128 2^7=128 27=128)。但计算机通常以字节为单位(1B=8b),所以, 实际ASCII采用8位二进制编码,并在高位补0 (256),这样就一定会产生冗余。

汉字编码

采用区位码,即一个汉字两字节,以坐标形式表示字的区位。

区位范围均为0~93.

为了防止区位码和0~32ASCII码控制/通讯字符冲突,区位码+20H(32),得到 国标码

国标码再+80H(128),防止和英文字符冲突。避开ASCII0~127区间,让汉字和ASCII码兼容。得到 汉字机内码

第二章 数据的表示和运算 2.1.3 字符与字符串 [计算机组成原理笔记]

输入:输入编码(输入法->区位码->国标码->汉字机内编码)

输出:汉字字形码
第二章 数据的表示和运算 2.1.3 字符与字符串 [计算机组成原理笔记]

字符串在内存中的表示

通常,在末尾+\0 (0000 0000),表示结束。

大端模式:汉字机内码的高位存低地址;
小端模式:汉字机内码的低位存低地址。

第二章 数据的表示和运算 2.1.3 字符与字符串 [计算机组成原理笔记]

知识回顾

第二章 数据的表示和运算 2.1.3 字符与字符串 [计算机组成原理笔记]

上一篇:java int和char之间的相互转换


下一篇:Python3 错误UnicodeEncodeError: 'ascii' codec can't encode characters in ordinal