|
本章主要介绍数据的表示和运算。主要包括:真值和机器数的概念,无符号数的表示和作用、定点数的表示、浮点数的表示(包括浮点数的形式、浮点数的规格化、浮点数的表示范围、IEEE754标准)、定点数运算(包括移位运算、扩展运算、加减运算、乘法运算、除法运算)、浮点数运算、算术逻辑单元ALU和快速加法器。具体总结如下: (1)数据信息有两大类:数值数据与非数值数据: ①数值数据:在数轴上有对应的点、能比较大小的数。 a)二进制表示 i.无符号数:正整数,用来表示地址等 ii.带符号数:分定点数和浮点数两种 l.定点数: ü.定点整数:用来表示现实中的整数,一般用补码表示。 ü.定点小数:用来表示浮点数中的尾数部分。 l.浮点数:用来表示现实中的实数。用两个定点数来表示浮点数。尾数部分用定点小数表示,阶码部分(指数)用定点整数表示。一般用移码表示阶码。现代计算机统一用IEEE754标准来表示浮点数。 b)十进制表示:用二进制对十进制数进行编码,称为BCD码。一般用8421码表示。 ②非数值数据:在数轴上没有对应的点的数据。如:逻辑数、西文字符、汉字等 (2)定点数运算:由专门的定点运算器实现: ①移位运算 a)逻辑移位:对无符号数进行,左(右)边补0,低(高)位移出 b)算术移位:对带符号整数进行,移位前后符号位不变,编码不同,方式不同。 c)循环移位:最左(右)边位移到最低(高)位,其他位左(右)移一位。 ②扩展运算 a)零扩展:对无符号整数进行高位补0 b)符号扩展:对补码整数在高位直接补符 ③加减运算 a)补码加/减运算:用于整数加/减运算。符号位和数值位一起运算,减法用加法实现。同号相加时,若结果的符号不同于加数的符号,则会发生溢出。 b)原码加/减运算:用于浮点数尾数加/减运算。符号位和数值位分开运算,同号相加,异号相减,大数减小数,结果取大数的符号。减法用加负数补码实现。 ④乘法运算:用加法和右移实现。 a)补码乘法:用于整数乘法运算。符号位和数值位一起运算。采用Booth算法。 b)原码乘法:用于浮点数尾数乘法运算。符号位和数值位分开运算。数值部分用无符号数乘法实现。 ⑤除法运算:用加/减法和左移实现。 a)补码除法:用于整数除法运算。符号位和数值位一起运算。 b)原码除法:用于浮点数尾数除法运算。符号位和数值位分开运算。数值部分用无符号数除法实现。 (3)浮点数运算:由专门的浮点运算器实现: ①加减运算: a)对阶:小阶向大阶看齐,阶小的那个数的尾数右移,直到两数阶码相同,右移时,增加保护位。 b)尾数相加减:用定点数加/减运算实现。 c)规格化处理:根据结果进行左规或右规操作。 d)舍入:有就近舍入 / 正向舍入 / 负向舍入 / 截去四种方式。 e)溢出判断:当结果发生阶码上溢时,发生溢出。 ②乘除运算:尾数用定点数乘/除运算实现,阶码用定点数加/减运算实现。 (4)快速加法器(并行加法器、先行进位加法器): a)加法器是加/减/乘/除运算的基础,加法器的速度至关重要 b)进位方式是影响加法器速度的重要因素 c)并行进位方式能加快加法器速度 d)通过“进位生成”和“进位传递”函数来使各进位独立、并行产生 (5)算术逻辑单元ALU:在先行进位加法器的基础上增加其他逻辑,实现基本的算术和逻辑运算的部件。有两个操作数输入、低位进位输入、一个操作控制输入、一个结果输出、一位高位进位输出和相等标志输出等。
|