3. 计算机组成原理 磨耳朵

8 进制的基本数元是从 0 到 7。
一个数的右下角用 H 或 16 标识,表示该数是一个十六进制数。
二进制数转换为十六进制需要以小数点为界每 4 位截取转换。
将十进制数转换为 R 进制数时,小数部分采用乘 R 取整法。
计算机中所有信息都是用二进制代码来表示。

正数的原码和其补码一样。
整数在计算机中通常采用补码格式存储和运算
当用补码表示时,0 在补码中有唯一表示,负数可以比正数多表示一个。已知负数的补码求原码,保留负数符号位,然后依旧按照取反加一的原则得到。
用补码可以表示有符号数可使减法用加法运算实现。补码可以简化 CPU 的硬件实现。
移码中正数符号位为 1,负数符号位为 0。补码符号位取反即可得到移码。

定点数与浮点数都有一定的表示范围
浮点数表示中尾数部分位数越多则可以表示的数据精度越高
规格化的浮点数尾数部分是纯小数,并且尾数的最高数字位为 1。

IEEE754 是浮点数编码标准。

在常用的 BCD 编码方案中,余 3 码和格雷码是无权码。其余一般都为有权编码,比如 8421、5421 码。
5421 BCD 编码中用 4 位表示一个十进制, 1100 是 9 的编码。

补码减法运算可以转换为补码加法运算实现。
溢出分为上溢和下溢。
溢出产生的根本原因是运算结果超出了数据的编码表示范围。

加、减运算属于算术运算。
与、或运算属于逻辑运算。

算术运算中数据有正负、大小之分,会产生进位或借位。而逻辑运算中,数据没有正负、大小之分,位与位之间相互独立运算,不会产生进位和借位。

与运算可以把一个数据中的某些位清 0。
或运算可以把一个数据中的某些位数置为 1。

ASCII 码(美国信息交换标准代码)是由美国国家标准学会(ANSI)制定。
标准 ASCII 码用 7 位二进制对 128 种符号进行编码。
在计算机中,一个 ASCII 码字符需要使用 1 个字节。

UCS-2 编码只适用于对 BMP 平面上的字符编码。
Unicode 编码是为世界各国、各地区的字符制定的编码方案。是一种多字节编码方案。
有 UTF-8,UTF-16,UTF-32 三种实现方案;有 UCS-2 和 UCS-4两种编码标准。

用户从键盘上输入的汉字编码被称为输入码。
常用的汉字输入码有字形码、拼音码、音形混合码。五笔字形是一种汉字输入码。
汉字处理系统中的字库文件用来解决输出时转换为显示或打印字模问题。
点阵字库用点的虚实来表示汉字的轮廓形状信息,点阵字库比矢量字库占用更多空间。存储 1 个 24×24 点阵汉字字形,所需的存储空间是 24 乘以 24 除以 8 = 72 个字节。
点阵字模点数越多显示越清楚,矢量字库缩放则不会变形。

GB2312、GBK、GB18030 都属于汉字编码。
GB2312 编码是一种简体中文编码方案,每个汉字的 GB2312 编码为两个字节。GB2312标准包括了 6763 个汉字,分为一级常用汉字和二级次常用汉字。
定义的各汉字编码标准中,字符最多的是 GB18030。
BIG5 大五码是通行于台湾、香港地区的一个繁体汉字编码方案。

机内码是用于汉字的存储、编辑和传输的编码。
在区国机编码的计算中。区位码每字节加 20 H 得到国标码,再加 80 H 将得到机内码。

奇校验码在 k 位有效信息上增加 1 位额外的校验信息,使得 k+1 位二进制序列中 1 的个数要为奇数。
偶校验则要保证1的个数是偶数。
适合于对一批数据进行校验的是 CRC 循环冗余校验码。奇偶校验码和 CRC 校验码主要用于检测数据错误。
海明(汉明)校验码不但可以检测数据错误,还可以纠正错误。