计算机组成原理——第二章 数据的级表示
本章重点讨论计算机内部数据的机器级表示方式。主要内容包括:进位记数制、二进制定点数的编码表示、无符号整数和带符号整数的表示、IEEE 754 浮点数表示标准、西文字符和汉字的编码表示、十进制数的二进制编码表示(即 BCD 码)、C 语言中各种类型数据的表示和转换、数据的宽度和存放顺序以及几种常用检/纠错码的编码表示与使用方法。
2.1 数制和编码
2.1.1 信息的二进制编码
表示一个数值数据要确定三个要素:进位记数制、定/浮点表示和编码规则。任何给定的一个二进制 0/1 序列,在未确定它采用什么进位记数制、定点还是浮点表示以及编码表示方法之前,它所代表的数值数据的值是无法确定的。
在计算机系统内部,所有信息都是用二进制进行编码的。也就是说计算机内部采用的是二进制表
示方式。这样做的原因有以下几点。
(1) 二进制只有两种基本状态,使用有两个稳定状态的物理器件就可以表示二进制数的每一位,而制造有两个稳定状态的物理器件要比制造有多个稳定状态的物理器件容易得多。例如,用高、低两个电位,或用脉冲的有无,或脉冲的正负极性等都可以很方便、很可靠地表示“0”和“1”。
(2) 二进制的编码和运算规则都很简单。可用开关电路实现,简便易行。
(3) 两个符号 1 和 0 正好与逻辑命题的两个值“真”和“假”相对应,为计算机中实现逻辑运算和程序中的逻辑判断提供了便利的条件,特别是能通过逻辑门电路方便地实现算术运算
2.1.2 进位记数制
主要讲的就是进制的转化
在这里我自己总结一下:
-
十进制转化为R进制
(1)整数部分就是除R得余法,然后从下到上为高位到低位。
(2)小数部分就是乘R取整法,然后从上到下为高位到低位。 -
R进制转化为十进制
任何一个 R 进制数转换成十进制数时,只要“按权展开”即可。 -
R进制之间的转化
通用先转化为十进制再转化。
特殊的就是二进制转化为八进制和十六进制。
二进制数转换成八进制数时,整数部分从低位向高位方向每 3 位用一个等值的八进制数来替换,最后不足 3 位时在高位补 0 凑满 3 位;小数部分从高位向低位方向每 3 位用一个等值的八进制数来替换,最后不足 3 位时在低位补 0 凑满 3 位。
二进制数转换成十六进制数时,整数部分从低位向高位方向每 4 位用一个等值的十六进制数来替换,最后不足 4 位时在高位补 0 凑满 4 位;小数部分从高位向低位方向每 4 位用一个等值的十六进制数来替换,最后不足 4 位时在低位补 0 凑满 4 位。
2.1.3 定点与浮点表示
- 定点表示
定点表示法用来对定点小数和定点整数进行表示。 - 浮点表示
对于任意一个二进制数 X,可以表示成如下形式:
X= ( − 1 ) s (-1)^s (−1)s×M×