第3章运算方法和运算部件
本章要点:
常用的进位计数制及其相互转换
数值数据的表示和运算
运算部件
浮点运算
数据校验
3.1 数字化信息编码
3.2 常用的数据表示
3.3 二进制数值数据的编码与运算算法
3.4浮点数与浮点运算器
3.6数据校验码
1. 各种形式的信息,在计算机系统内部,主要表示成定点数(整数)、浮点数(实数)、逻辑数(布尔数)、字符、字符串等形式,并且都必须采用数字化编码。所以,在计算机系统中所指的数据均是以二进制编码形式出现的。
2. (1)二进制只有两种基本状态,使用有两个稳定状态的物理器件(如三极管)就可以表示二进制数的每一位,而制造有两个稳定状态的物理器件要比制造有多个稳定状态的物理器件容易得多。(2)二进制的编码、计数和运算规则都很简单。可用开关电路实现,简便易行;(3)两个符号“1”和“0”正好与逻辑命题的两个值“真”和“假”相对应,为计算机中实现逻辑运算和程序中的逻辑判断提供了便利的条件。
3. 编码是计算机系统的基础,而编码的基础是数制。而在计算机中,多采用二进制数,二进制数的优点是其运算规律简单且实现二进制数的数字装置简单。二进制数的缺点是人们对其使用时不习惯且当二进制位数较多时,书写起来很麻烦,特别是在写错了以后不易查找错误。
4. (1)基数 在某种数制中,允许使用的数字符号的个数,称为这种数制的基数或基。(2)位权 任一种N进制中,Ni 称为第i位的权。(3)进位 在同一位权上计数值达到基数时,就要进入高一级的位权,这就是数制中的进位。
5. 在计算机内部,符号和数字都用二进制码表示,两者合在一起构成数的机内表示形式,称为机器数,而它真正表示的带有符号的数称为这个机器数的真值。机器数又分为定点数和浮点数。
6. 无符号数在计算机中通常有三种表示方法。
(1)位数不等的二进制码。
(2)BCD码。BCD码的表示形式一般又有两种:压缩BCD码和非压缩BCD码。
(3)ASCII码(American Standard Code for Information Interchange,ASCII),美国标准信息交换码。该编码已被国际标准化组织ISO采纳,作为国际通用的信息标准交换代码。
ASCII码包含52个大、小写英文字母,10个十进制数字字符,32个标点符号、运算符号、特殊号,还有34个不可显示打印的控制字符编码,一共是128个编码。
7. 当所要处理的数含有小数部分时。在计算机中并不用某个二进制位来表示小数点,而是隐含规定小数点的位置。若约定小数点的位置是固定的,这就是定点表示法;若给定小数点的位置是可以变动的,则成为浮点表示法。通常采取两种简单的约定:一种是约定所有机器数的小数的小数点位置隐含在机器数的最低位之后,叫定点整数。另一种约定所有机器数的小数点隐含在符号位之后、有效部分最高位之前,叫定点小数。把一个二进制数通过移动小数点位置表示成阶码和尾数两部分。
8. 原码:对于无符号数,原码是一种用数值本身表示的二进制编码。对于有符号数,原码是一种以符号和数值表示的二进制编码。有符号数的原码编码规则是:用最高位表示符号,整数用0表示,负数用1表示。其他位表示该数的绝对值。
9. 反码:反码使用得较少,它只是补码得一种过渡。对于无符号数,反码是一种用对数值按位取反表示的二进制编码。对于有符号数,反码是一种用符号位和对数值按位取反表示的二进制编码。有符号数的反码编码规则是:用最高位表示符号,正数用0表示,负数用1表示。正数的反码是其原码本身,负数反码的数值部分是原码的数值部分按位取反。
10. 补码:补码是计算机处理有符号数的运算常用的一种方法。对于无符号数,补码是一种用对数值按位取反并加1表示的二进制编码。对于有符号数,补码是一种用符号和对数值按位取反并加1表示的二进制编码。
11. (1)乘法运算可用移位运算和加法运算实现,当4位数乘4位数时,需要作4次移位运算和4次加法运算;
(2)由乘数的末位值决定乘数是否与部分积相加,然后右移1位,形成新的部分积;同时乘数也右移1位,由次低位作为末位值,空出的最高位为部分积的最低位。
(3)每次作加法时,被乘数仅仅与原部分积的高位相加,其低位被移至乘数所空出的高位位置。
12. 用浮点数表示一个数值数据时,实际上是用两个定点数来表示的。一个定点小数用来表示浮点数的尾数,一个定点整数用来表示浮点数的阶码。一般浮点数的阶码都是用一种称之为“移码”的编码方式表示的。
13. 数据校验码是一种常用的带有发现某些错误或自动改错能力的数据编码方法。它的实现原理,是加进一些冗余码,使合法数据编码出现某些错误时,就成为非法编码。这样,就可以通过检测编码的合法性来达到发现错误的目的。码距是根据任意两个合法码之间至少有几个二进制位不相同而确定的,仅有一位不同,称其码距为1。常用的数据校验码主要有奇偶校验码、海明校验码和循环冗余校验码。
14. 循环冗余校验码(Cyclic Redundancy Check),简称CRC码,是一种具有很强检错、纠错能力的校验码。循环冗余校验码常用于外存储器的数据校验。在数据传输中奇偶校验码是在每个字符信息后增加一位奇偶校验位来进行数据校验的,这样对大批量传输数据进行校验时,会增加大量的额外开销,尤其是在网络通信中,传输的数据信息都是二进制比特流,因而没有必要将数据再分解成一个个字符,这样也就无法采用奇偶校验码,因此,通常采用CRC码进行校验。