1、计算机组成原理,Principles of Computer Organization,广义双语教学课程,http:/211.64.192.109/skyclass25/,青岛理工大学 校级精品课程,http:/ 计算机的运算方法,( 2 ),The addition of two numbers in the signed-magnitude system follows the rules of ordinary arithmetic. If the signs are the same, we add the two magnitudes and give the sum the com
2、mon sign. If the signs are different, we subtract the smaller magnitude from the larger and give the result the sign of the larger magnitude.,原码加减运算要比较参与运算两数的符号和绝对值大小。做加法是同号相加,异号相减,和的符号取决于绝对值较大的数。做减法则是同号相减,异号相加,差的符号取决于绝对值较大的数。,This a process that requires the comparison of the signs and the magnitud
3、es and then performing either addition or subtraction.,3,6.3.2 加减法运算 Fixed-Point Addition & Subtraction,补码加法,补码加法运算的基本公式:,X+Y补X补+Y补 (mod M),定点小数 M=2,定点整数 M=2n+1。,【例1】X=+0.1001B, Y=0.0101B, 求X+Y=?,解:,X补=,X+Y=,Y补=,X+Y补 =X补+Y补,=0.1001+1.1011,=0.0100,0.1001,1.1011,+0.0100,4,【例2】X=11011B,Y=0011B, X+Y=?,解
4、:,X+Y=,The rule for adding numbers in the signed-2s complement system dose not require a comparison or subtraction, only adding and complementation.,X补=,Y补=,X+Y补 =X补+Y补,= 100101+111101,= 100010,100101,111101,11110,The procedure is very simple and can be stated as follows: add the two numbers, includ
5、ing their sign bits and discard any carry out of the sign (leftmost) bit position.,5,补码减法,补码减法的基本公式:,XY补=X补+Y补 (mod M),已知Y补,求Y补,不论Y的真值是正还是负,只要将Y补连同符号位一起逐位变反,然后在最低位加1即可。这种方法称为对Y补求补,或将Y补变补。,【例3】 X=0.1101B, Y=0.0110B, 求XY=?,解:,XY=,X补=,Y补=,X-Y补 =X补+Y补,= 1.0011+0.0110,= 1.1001,Y补=,1.0011,1.1010,0.0110,0.
6、0111,6, 参加运算的数用补码表示,符号位参加运算。,补码加减法运算:, 加法Addition ,两数补码直接相加。, 减法Subtraction ,将减数变补后,与被减数相加。,7,溢出判断和变形补码,【例4】X=+0.1011B, Y=+0.1101B, 求X+Y=?,解:,正溢出,【例5】X=0.1011B, Y=0.1100B, 求X+Y=?,解:,负溢出,X补=,Y补=,X+Y补 = 0.1011+0.1101,= 溢出,0.1011,0.1101,X补=,Y补=,X+Y补 = 1.0101+1.0100,= 溢出,1.0101,1.0100,8,【例6】X=+0.100B, Y
7、=0.110B, 求XY=?,解:,注意,溢出和按模丢掉是不同的。,定点数加减法运算的结果若超出该定点数所能表示的范围时,就会产生溢出(Overflow) ,结果无意义。,X补=,Y补=,X-Y补 =X补+Y补,= 0.1000+0.1100,= 溢出,Y补=,0.1000,1.0100,0. 1100,9,判断溢出的方法:,1. 根据单符号位的判断方法,两个符号相异的数相加,以及两个符号相同的数相减,是不会发生溢出的;,两个符号相同的数相加,以及两个符号相异的数相减才有可能发生溢出。,所以,可根据符号位来判断补码加减法是否发生溢出。,即两同号数相加,结果的符号与参加运算的操作数符号相反,就表
8、明有溢出。溢出表达式:,式中,V代表溢出, fX, fY和fS分别代表两个加数和结果的符号。发生溢出时V1。可用门电路实现此溢出判断。,10,2. 利用进位值的判断方法,两补码数进行加减运算时,若最高数值位产生向符号位的进位,而符号位不产生进位时发生正溢出Positive Overflow,若最高数值位无进位,而符号位有进位时,发生负溢出 Negative Overflow,溢出表达式:,式中,Cf为符号位的进位输出值,C为最高数值位向符号位产生的进位值。此判断方法可用异或门实现。,X补 0.1001+) Y补 1.1011X+Y补 0.0100,11,3. 采用变形补码的判断方法,变形补码又
9、称模4补码。变形补码有两个符号位,“00”代表正号,“11”代表负号。变形补码(n+2位)的定义是:,小数:,整数:,变形补码的两个符号位同时参加运算。,12,如果运算结果两个符号位相同,则没有发生溢出;,若两个符号位不同,表明发生了溢出。,“01”为正溢出,运算结果为正数;“10”为负溢出,运算结果为负数。,溢出判断的逻辑表达式:,式中,Sf1和S f2分别代表结果的第一符号位和第二符号位。此逻辑表达式可用异或门实现。,不论溢出与否,第一符号位总是表示结果的正确符号。,Sf1,S f2,13,【例7】X=0.1011B, Y=0.1100B, 求X+Y=?,解:,X+Y补 = 11.0101
10、+11.0100,X+Y补 10.1001,负溢出,【例8】X=+0.100B, Y=0.1010B, 求XY=?,解:,=溢出,X-Y补 01.0010,正溢出,加减法运算的逻辑,X补=,Y补=,=溢出,X补 11.0101,+) Y补 11.0100,X补=,Y补=,Y补=,XY补=00.1000+00.1010,X补 00.1000,+) -Y补 00.1010,11.0101,11.0100,00.1000,11.0110,00.1010,14,实现补码加减法运算的逻辑,做加法时的控制信号:AF,BF,FA。,做减法时的控制信号:AF, F ,F+1,FA。,累加器Accumulato
11、r,FA,BF,AF,&,1,&,加法器F,F+1,B,A,01,10,CPA,CPB,被加数X,加数Y,15,6.2.2 浮点表示 Floating-Point Representation,浮点表示法是把比例因子以适当的形式表示在数据中,并根据每个数据的具体要求对小数点进行浮动。,采用浮点数的机器称为浮点计算机。,任意一个R进制数都可通过移动小数点的位置写成:,N= Srj,r是基数(Radix),一般取2,8或16,是由机器定义的,不能改变,也不出现在数据表示中。,S是尾数(Mantissa),它表示了数N的全部有效数字。,j是阶码(Exponent),它指出小数点在该数中的位置。,Th
12、e floating-point representation of a number has two parts. The first part represents a signed, fixed-point number called the mantissa. The second part designates the position of the decimal (or binary) point and is called exponent.,16,尾符 阶符 阶码的数值部分 小数点 尾数的数值部分,浮点数在计算机中的表示格式有两种:,阶符 阶码的数值部分 尾符 小数点 尾数的
13、数值部分,尾数用定点纯小数原码或补码表示,阶码用定点纯整数补码或移码表示。,浮点数的格式,17,浮点数的表示范围,浮点数的精度主要取决于尾数的位数,,浮点数所能表示的数值范围主要取决于阶码的位数。,若基数为2,阶码(包括一位符号位)为m+1位补码,尾数(包括一位符号位)为n+1位原码,则能表示的数的范围是:,尾数最大的绝对值为12 -n,尾数最小的绝对值为2 -n,最大的阶码为,最小的阶码为,在位数相同的情况下,浮点数的表示范围比定点数大。,如果浮点数的尾数和阶码都用补码表示,则,最小正数为,18,用类似的方法,不难得出基数为8或16时浮点数的表示范围。,例:一个32位的浮点数,阶码为7位(包
14、括1个符号位)二进制补码,基数为2,尾数为25位(包括1个符号位)二进制原码,求该浮点数的表示范围。,解:,能表示的最小的绝对值,能表示的最大正数,能表示的绝对值最大的负数,The advantage of floating-point representation over fixed-point (and integer) representation is that it can support a much wider range of values.,19,规格化浮点数,同一个浮点数可有多种表示形式。,如,0.50可表示为0.05101或50102等。,对于非0的浮点数用一个唯一的标
15、准形式来表示,称为规格化数,当尾数的值不为0时,其绝对值应大于或等于0.5。,Normalized,问题:表示形式不唯一,,精度不等。,表示形式唯一,精度最高,运算规则简单。,A floating-point number is said to be normalized if the most significant digit of the mantissa is nonzero.,20,规格化浮点数,原码表示的规格化的尾数的最高数值位一定为1,,这是判别此浮点数是否为规格化数的方法。,当尾数用补码表示时, 规格化尾数的特征是尾数最高数值位与符号位相反 (即不能同时为0或同时为1),Nor
16、malized,当1/2S1, 有0.1xx,,当 -1S-1/2,有1.0xx,由于-1/2补1.100,为了便于机器判别,规定不将-0.5列入规格化数,对于负数,补码表示的规格化尾数应满足-0.5S-1。,规格化浮点数的表示范围小于非规格化浮点数的表示范围。,1/2| S | 1,21,非零最小正数,非零绝对值最小负数,对于非规格化的尾数,必须对尾数进行移位,同时调整阶码使其成为规格化数。,尾数经左移操作实现规格化称为左规。左规时,尾数每左移1位,阶码减1。,尾数以右移操作实现规格化称为右规。右规时,尾数每右移1位,阶码加1。,22,如果尾数和阶码都用补码表示:,非零最小正数为,非零绝对值
17、最小负数为,例1 设浮点数基数为2,阶码为7位补码(包含1个符号位),尾数为9位原码(包含1个符号位)。 X= +13.25, Y= 1/8。求X和Y的规格化浮点机器数。,例1 浮点数基数为2,阶码为7位补码(包含1个符号位),尾数为9位原码(包含1个符号位)。X= +13.25,Y= -1/8。求X和Y的规格化浮点机器数,X=(+13.25)10 =(+1101.01)2 =+0.110101002+0100, Y=(-1/8)10 =(-0.001)2 = -0.1002010,解:,浮点机器数: X浮点=0 0000100 11010100Y浮点=1 1111110 10000000,如
18、果阶码为移码,尾数为补码,则,Y=(-1/8)10 =(-0.001)2 = -0.1002010= -1.0000000020011 Xj补=0000100 Xj移=1000100 XS补=0.11010100 Yj补=1111101 Yj移=0111101 YS补=1.00000000 浮点机器数: X浮点=0 1000100 11010100Y浮点=1 0111101 00000000,设浮点数格式为: 1 2 8 9 16,Xj补=0000100 XS原=0.11010100 Yj补=1111110 YS原=1.10000000,24,Homework,6 - 12,14,15,16,
19、19,The speed of floating-point operations is an important measure of performance for computers in many application domains. It is measured in FLOPS.,“数字逻辑”不及格的同学请注意: 本学期还有2门“数字逻辑”课程:计升101-2,软件093-4。 如果需要可以去旁听。 不再专门给你们开课了。,25,今日要点,1、定点补码加减法运算,2、溢出判断和变形补码,3、浮点表示法,4、浮点数的表示范围,5、规格化浮点数,6、移码加减法运算,The term
20、 floating point refers to the fact that the radix point (decimal point, or, more commonly in computers, binary point) can “float“; that is, it can be placed anywhere relative to the significant digits of the number.,This position is indicated separately in the internal representation, and floating-point representation can thus be thought of as a computer realization of scientific notation.,