第三章运算方法与运算器部件.ppt

上传人:本田雅阁 文档编号:2554414 上传时间:2019-04-07 格式:PPT 页数:116 大小:1.27MB
返回 下载 相关 举报
第三章运算方法与运算器部件.ppt_第1页
第1页 / 共116页
第三章运算方法与运算器部件.ppt_第2页
第2页 / 共116页
第三章运算方法与运算器部件.ppt_第3页
第3页 / 共116页
亲,该文档总共116页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第三章运算方法与运算器部件.ppt》由会员分享,可在线阅读,更多相关《第三章运算方法与运算器部件.ppt(116页珍藏版)》请在三一文库上搜索。

1、1,第三章 运算方法和运算部件,2,主要内容,3.1 数据的表示方法和转换,3.2 带符号数据的表示方法与 加减运算,3.3 二进制乘法运算,3.5 浮点数的运算方法,3.6 运算部件,3.7 计算机中的数据校验方法,3.4 定点除法运算,3,3.1 数制,3.1.1 数值型数据的表示和转换,3.1.2 十进制数的编码与运算,4,1、进位计数制 基数(base或radix):所用到的数字符号个数。 例如10进制 :0-9 十个数码,基数为10 权:进位制中各位“1”所表示的值为该位的权. 常见的进位制: 2,8,10,16进制。 二进制:Binary 八进制: Octal 十进制:Decima

2、l 十六进制:Hexadecimal,3.1.1 数值型数据的表示和转换,5,2、进位计数制之间的转换,按权展开法:先写成多项式,然后计算十进制结果. N= dn-1 dn-2 d1d0d-1d-2 d-m =dn-1 Rn-1 + dn-2 Rn-2 + d1 R1 + d0 R0 + d-1R-1 + d-2 R-2 + d-m R-m,1) R进制转换成十进制的方法,6,例如:写出(1101.01)2,(237)8,(10D)16的十进制数,(1101.01)2=123+122+021+120+ 02-1+12-2 =8+4+1+0.25=13.25 (237)8=282+321+720

3、 =128+24+7=159 (10D)16=1162+13160=256+13=269,7,2)十进制转换成二进制方法,一般分为两个步骤: 整数部分的转换 除2取余法(基数除法) 小数部分的转换 乘2取整法(基数乘法),8,例如:将(327)10转换成二进制数,2 327 余数,2 163 1,2 81 1,2 40 1,2 20 0,2 10 0,2 5 0,2 2 1,2 1 0,2 0 1,(327)10 =(101000111) 2,最高位,最低位,9,乘基取整法(小数部分的转换),例如:将(0.8125) 10 转换成二进制小数. 整数部分 2 0.8125=1.625 1 2 0

4、.625=1.25 1 2 0.25=0.5 0 2 0.5=1.0 1 (0.8125) 10 =(0.1101) 2,10,例:将(0.2) 10 转换成二进制小数,0.2 2 = 0.4 0 0.4 2 = 0.8 0 0.8 2 = 1.6 1 0.6 2 = 1.2 1 0.2 2 = 0.4 0 0.4 2 = 0.8 0 0.8 2 = 1.6 1 0.6 2 = 1.2 1 (0.2) 10 = 0.001100110011. 2,整数部分,11,3)其它进制之间的直接转换法,二八 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7,

5、1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F,二 十六,0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7,12,二进制转换成八进制,例:(10110111 .01101) 2,(10110111.01101) 2 =(267.32)8,八进制: 2 6 7 . 3 2,二进制: 010 ,110 , 111 . 011 , 010,二进制: 10 ,110 , 111 . 011 , 01,13,八进制转换二进制,例如: (123.46 ) 8 =(001,010,0

6、11 .100,110 ) 2 =(1010011.10011)2,14,二进制转换成十六进制,例:(110110111 .01101) 2,(10110111.01101) 2 =(1B7.68)16,十六进制: 1 B 7 . 6 8,二进制: 0001 ,1011 , 0111 . 0110 ,1000,二进制: 1 ,1011 , 0111 . 0110 ,1,15,十六进制转换成二进制,例如: (7AC.DE ) 16 =(0111,1010,1100.1101,1110 ) 2 =(11110101100 .1101111 )2,16,3、数值符号的表示,带符号数的编码 名词解释:

7、真值和机器数 真值:正、负号加某进制数绝对值的形式。 如二进制真值: X=+1011 y=-1011 机器数:符号数码化的数称为机器数 如 :X=01011 Y=11011,17,3.1.2 十进制数的编码与运算,1、BCD码 8421码为有权代码,数值为 N=8d3+4d2+2d1+1d0 十进制数63.29的BCD码为: 0110 0011 . 0010 1001 2421码为有权代码,数值为 N=2d3+4d2+2d1+1d0 十进制数63.29的BCD码为:1100 0011 . 0010 1111 余3码为无权代码,对应8421码加3而得。 除上述三种BCD码之外,还有5421码、格

8、雷码等,18,BCD码,19,二进制码 格雷码,二进制码-格雷码(编码):从最右边一位起,依次将每一位与左边一位异或(XOR),作为对应格雷码该位的值,最左边一位不变; 格雷码-二进制码(解码):从左边第二位起,将每位与左边一位解码后的值异或,作为该位解码后的值(最左边一位依然不变).,20,十进制编码的加法运算,1) “8421”BCD码加法运算 BCD码运算应将每4位二进制数分为一组,组与组之间直接运算,逢十进一。但计算机中无法区分BCD码,一概作为二进制数处理,因此,计算机做此运算后须进行调整。 调整方法: 和9 (1001)2, 不调整 和9 (1001)2 , 加6 (0110)2修

9、正,21,0 1 1 1 + 1 0 0 0 1 1 1 1 + 0 1 1 0 1 0 1 0 1,1 0 0 0 + 1 0 0 1 1 0 0 0 1 + 0 1 1 0 1 0 1 1 1,例:5+3=8,7+8=15,8+9=17,0 1 0 1 + 0 0 1 1 1 0 0 0,向高位进位,22,2、 数字串在机内的表示与存储,主要有两种形式: (l) 字符形式:用一个字节存放一个十进制数位或符号位,存放的是09十个数字和正负号的ASCll编码值。 例如,123的编码为2B 31 32 33 ,占用 4个连续的字节。 这种方式高4位不具有数值意义,运算起来很不方便,主要用在非数值

10、计算的应用领域。,23,(2)压缩的十进制数形式。用一个字节存放两个十进制数位,其值用BCD码或ASCll码的低4位表示。符号位也占半个字节并放在最低数字位之后,其值可从4位二进制码中的6种冗余状态中选用。 例,用C(l2)表示正号;D(13)表示负号。并规定数字和符号位个数之和必须为偶数,否则在最高数字之前补一个0。 例如,123被表示成12 3C(2个字节),一12被表示成01 2D(2个字节)。,24,3.2 带符号数据的表示方法与加减运算,机器数:计算机中表示的带符号的二进制数. 四种表示方法即原码、补码、反码和移码。,3.2.1 原码、补码、反码和移码 及运算,3.2.2 定点数和浮

11、点数计算机中的两种表示方式,3.2.3 数字化信息的编码及表示,25,3.2.1 原码、补码、反码和移码及运算,1、 原码表示法 原码表示法用“0”表正号,用“1” 表负号,有 效值部分用二进制的绝对值表示。 课件以下的n表示数值位数(机器字长为n+1位),小数: X 1X0 X原 = 1-X=1+|X| 0X-1,26,原码的表示范围: +0原 =00000000 ; -0原 =10000000 整数最大值 : 2n-1;最小值:-(2n-1) 小数最大值:1-2-n;最小值-(1-2-n) 表示数的个数: 2n+1 - 1,若二进制的位数是8,求其表示的最大值、最小值及表示数的个数,整数

12、127,-127; 小数 127/128,-127/128; 个数:255,27,原码特点:,表示简单,易于同真值之间进行转换, 实现乘除运算规则简单。 进行加减运算十分麻烦。,28,2、补码表示法,模:计量器具的容量,或称为模数。 例如:4位字长的机器表示的二进制16种状态,模为16= 24 。 整数N位字长的模值为 2n, 一位符号位的纯小数的模值为2。 补码的定义:正数的补码就是正数的本身,负数的补码是原负数加上模。,29,补码的表示范围:,N+1位纯整数: 2n -1 , -2n N+1位纯小数: 1- 2-n , - 1 均能表示 2n+1 个数,小数: X 1X0 X补 = 2+X

13、=2-|X| 0X -1,30,原码求补码 正数: X补=X原 负数: 符号除外,各位取反,末位加1 例:X= -01001001 X原=11001001 X补=10110110+1=10110111 X补= 28 +X=100000000-1001001=10110111 100000000 - 1001001 10110111,原码与补码之间的转换,31,由X补求-X补(求机器负数),运算过程是连同 符号一起将各位取 反,末位再加1。设字长N=8位 例:X= +100 1001 X补 = 0100 1001 -X 补=1 011 01 1 1,32,最大的优点就是将减法运算转换成加法运算。

14、,X补-Y补= X补+-Y补 例如 X=(11)10=(1011)2 Y=(5)10=(0101)2 已知字长n=5位 X补-Y补 =X补+-Y补 =01011+11011=100110=00110=(6)10 注: 最高1位已经超过字长故应丢掉,33,3、 反码表示法,正数的表示与原、补码相同,负数的补码符号位为1,数值位是将原码的数值按位取反,就得到该数的反码表示。,小数: X 1X0 X反 = 2-2-n+X 0X-1,34,整数的表示形式,X 0 X2n X原 = 2n-X=2n+|X| -2n X 0,X 0 X2n X补 = 2n+1+X=2n+1-|X| -2n X 0,X 0

15、X2n X反 = 2n+1-1+X -2n X 0,35,4、 移码表示法,X移= 2n + X -2n X 2n,X1 = +101 0101 X1补= 0101 0101 X1移= 1101 0101 X2 = -0101 0101 X2补=1010 1011 X2移=0010 1011,36,码制表示法小结,X原、X反 、X 补用“0”表示正号,用“1”表示负号; X移用“1”表示正号,用“0”表示负号。 如果X为正数,则X原=X反 =X 补。 如果X为0,则 X 补 、X移有唯一 编码, X原、X反 有两种编码。 移码与补码的数值形式相同,只是符号位相反。,37,6、 数值的运算方法,

16、计算机中,常用补码进行加减运算 补码可将减法变加法进行运算 补码运算特点:符号位和数值位一同运算 定点补码运算在加法运算时的基本规则: X+Y补= X补+Y补 定点补码运算在减法运算时的基本规则: X-Y补=X补+-Y补,38,例如:已知机器字长n=8,X=44,Y=53, 求X+Y=?,解:X原=00101100,Y原=00110101,X补=00101100,Y补=00110101,X补= 0 0 1 0 1 1 0 0 + Y补= 0 0 1 1 0 1 0 1,1,0,0,0,0,1,1,0,X+Y= + 97,39,例:已知机器字长n=8,X=-44, Y=-53, 求X+Y=?,解

17、:44补=00101100, 53补=00110101 X补=-44补=11010011+1=11010100, Y补=-53补=11001010+1=11001011, X补 = 1 1 0 1 0 1 0 0 + Y补 = 1 1 0 0 1 0 1 1 X+Y补= 1 1 0 0 1 1 1 1 1 超出8位,舍弃模值 X+Y=-01100001,X+Y=( -97),40,例:已知机器字长n=8,X=44,Y=53, 求X-Y=?,解:X补=00101100,Y补=00110101, -Y补=11001011 X补= 0 0 1 0 1 1 0 0 + -Y补= 1 1 0 0 1 0

18、 1 1 11 1 1 0 1 1 1 X-Y补=11110111,X-Y=-0001001=(-9),41,例:已知机器字长n=8,X=-44,Y=-53, 求X-Y=?,解:X补=11010100,Y补=11001011, -Y补=00110101 X补 = 1 1 0 1 0 1 0 0 + -Y补= 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 0 1 超出8位(模值),舍弃 X-Y补=00001001,X-Y=+0001001 =(+9),42,溢出问题,例:已知机器字长n=8,X= 120,Y=10, 求X+Y=?,43,解:X补=01111000,Y补=000010

19、10, X补= 0 1 1 1 1 0 0 0 + Y补= 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 X+Y补=10000010,X+Y原=11111110 X+Y的真值= -1111110=( -126)10 运算结果超出机器数值范围发生溢出错误。,44,溢出判断规则与判断方法,两个相同符号数相加,其运算结果符号与被加数相同,若相反则产生溢出; 两个相异符号数相加,不会产生溢出。 溢出判断方法: 1.双符号法,2.进位判断法。,45,(1)双符号位溢出判断法 Sf1Sf2 (也被称为变形补码),双符号含义: 00表示运算结果为正数; 01表示运算结果正向溢出; 10表示

20、运算结果负向溢出; 11表示运算结果为负数。 亦即:OVR = Sf1 Sf2 = 1 有溢出 OVR = Sf1 Sf2 = 0 无溢出 第一位符号位为运算结果的真正符号位。,46,例:X=0.1001,Y=0.0101,求X+Y,解: X补= 00.1 0 0 1 +Y补= 00.0 1 0 1 X+Y补= 00.1 1 1 0 两个符号位相同,运算结果无溢出 X+Y=+0.1110,47,例:X= - 0.1001,Y= - 0.0101,求 X+Y=?,解: X补= 11.0110+1 = 1 1. 0 1 1 1 + Y补= 11.1010+1 = 1 1. 1 0 1 1 X+Y补

21、= 1 1 1. 0 0 1 0 最高位1丢掉 两个符号位相同,运算结果无溢出 X+Y= - 0.1110,48,例:X= 0.1011,Y= 0.0111,求 X+Y=?,解: X补= 00.1 0 1 1 + Y补= 00.0 1 1 1 X+Y补= 01.0 0 1 0 两个符号位为01,运算结果正向溢出,49,例:X= - 0.1011,Y= 0.0111,求 X-Y=?,解: X补= 11.0100+1=11.0101 Y补=00.0111 -Y补=11.1001 X补 = 1 1. 0 1 0 1 + -Y补 = 1 1. 1 0 0 1 X+Y补 = 1 1 0. 1 1 1 0

22、 两个符号位10不同,运算结果负向溢出,50,(2)进位溢出判断法 SC,两单符号位的补码进行加减运算时,若最高数值位向符号位的进位值C与符号位产生的进位输出值S相同时则无溢出,否则溢出。 例: X补= 1. 1 0 1 + Y补= 1. 0 0 1 X+Y补=1 0. 1 1 0 C=0,S=1,有溢出 X+Y=+0.010,X补= 1. 1 1 0 + Y补= 0. 1 0 0 X+Y补= 1 0. 0 1 0 C=1,S=1,无溢出,51,3.2.2 定点数和浮点数,数值范围:一种数据类型所能表示的最大值和最小值 数据精度:实数所能表示的有效数字位数。 数值范围和数据精度均与使用多少位二

23、进制位数以及编码方式有关。 计算机用数字表示正负,隐含规定小数点。 采用“定点”、“浮点”两种表示形式。,52,1、数的定点表示方法,定点整数小数点位置固定在数的最低位之后 如: Dn Dn-1 D1 D0 . 定点小数小数点位置固定在数的符号位之后、数值最高位之前。 如:D0. D1 D-(n-1) D-n,53,(1)浮点数的表示:是把字长分成阶码和尾数两部分。其根据就是:N=M RE J Em-2.E0 S D-1D-(n-1) 阶符 阶码值 数符 . 尾数值 S J Em-2 .E0 D-1D-(n-1) 数符 阶符 阶码值 . 尾数值 通常,阶码为补码或移码定点整数,尾数为补码或原码

24、定点小数。,2、数的浮点表示方法,54,(2)浮点数的规格化,目的:字长固定的情况下提高表示的精度,方法:调整阶码使尾数满足下列关系: 尾数用原码表示时,无论正负应满足1/2d d -1,即 1.0x.x,55,例题:某机器用32位表示一个实数,阶码8位(含1位阶符),用定点整数补码表示;尾数24位(含数符1位),用规格化定点小数补码表示,基数为2。则:,1)X=256.5 的第一种浮点表示格式 X=(256. 5)10 =+(100000000.1)2 =+(0.1000000001 2+9 )2 8位阶码为:+9补=0000 1001 24位尾数为:+0.10 0000 0001补 =0.

25、100 0000 0010 0000 0000 0000 所求256.5的浮点表示格式为: 0000 1001 0100 0000 0010 0000 0000 0000 用16进制表示此结果则为:(09402000)16,56,Y=-(256. 5)10 =-(100000000.1)2 =-0.1000000001 2+9 8位阶码为:+9补=0000 1001 24位尾数为:-0.10 0000 0001补 =1.011 1111 1110 0000 0000 0000 所求-256.5的浮点表示格式为: 0000 1001 1011 1111 1110 0000 0000 0000 用

26、16进制表示此结果则为:09BFE000H,2)求Y= -256.5 的第一种浮点表示格式,57,3.3 二进制乘法运算,1. 软件编程方法实现(时序控制乘法器) 由手算到机器实现,要解决三个问题:符号问题、部分积相加进位问题、移位问题。 原码乘法是先取绝对值相乘,再根据同号相乘为正、异号相乘为负,单独决定符号位。补码乘法则让 符号位直接参加运算,算法将会复杂一些。 2. 硬件快速乘法器实现 利用中大规模集成电路芯片,在一拍节中实现多 项部分积的相加,成为阵列乘法器。,58,乘法运算,1. 分析笔算乘法,A = 0.1101 B = 0.1011,AB = 0.10001111,0 . 1 1

27、 0 1,0 . 1 0 1 1,1 1 0 1,1 1 0 1,0 0 0 0,1 1 0 1,0 . 1 0 0 0 1 1 1 1,符号位单独处理,乘数的某一位决定是否加被乘数,4个位积一起相加,乘积的位数扩大一倍,乘积的符号心算求得,?,59,3.3.1 定点数一位乘法,1、 定点原码一位乘,2、定点补码一位乘法,60,例:设X=0.1101,Y=0.1011,求XY。 其中寄存器B=X ,计数器Cd=4。 计算过程如下:,0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0

28、0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 1,+x 右移一位 +x 右移一位 +0 右移一位 +x 右移一位,部分积 A 乘数 C,乘积高位 乘积低位,1(丢失) 1(丢失) 0(丢失) 1(丢失),XY=0.10001111,61,例,已知 x = 0.1110 y = 0.1101 求x y原,解:,数值部分的运算,0 . 0 0 0 0,0 . 1 1 1 0,0 . 1 1 1 0,0 . 0 0 0 0,

29、0 . 1 1 1 0,0 . 1 1 1 0,部分积 初态 z0 = 0,逻辑右移,逻辑右移,62, 数值部分按绝对值相乘,x* y* = 0. 1 0 1 1 0 1 1 0,则 x y原 = 1. 1 0 1 1 0 1 1 0,特点,绝对值运算,逻辑移位,结果,用移位的次数判断乘法是否结束,63,2、定点补码一位乘法,原码乘法存在的缺点是符号位需要单独 运算,并要在最后给乘积冠以正确的符号。 补码乘法是指采用操作数的补码进行乘 法运算,最后乘积仍为补码,能自然得到乘 积的正确符号。,64,实现补码乘法有两种方法,现在广泛使用的是Booth算法,也称为比较法。这种方法在机器实现中要在乘数

30、末位(最低位后)Yi之后再增加一个附加位Yi+1,并令其初始值为0。然后根据比较Yi、 Yi+1的值决定下一步操作,规则如下:(设置部分积初始值为0) Yi Yi+1 操 作 0 0 原部分积右移一位 0 1 原部分积加X补后再右移一位 1 0 原部分积加-X补后再右移一位 1 1 原部分积右移一位,65,初始值与符号位:A寄存器存放部分累加和,初始为0,采用双符号位。第1符号位指示累加和的正负,以控制右移时补0或补1。B中存放被乘数的补码,双符号位。 基本操作:用C寄存器最末两位作判断位,决定下一步的操作。 移位:在右移时,第2符号位值移入位数的最高位,第1符号位值不变且移入第2符号位,而A

31、寄存器末位移入C寄存器。 步数与最后一步操作:乘数有效位是n=4位,共作n+1=5步。注意,最后一步不移位因为这一步是用来处理符号位的。,66,例3.35:设X=-0.1101,Y=0.1011,即X补=11.0011,Y补=0.1011 ,-X=00.1101 求XY补. 计算过程如下:,0 0 0 0 0 0 0. 1 0 1 1 0 初始值,最后一位补0 0 0 1 1 0 1 Y4Y5=10 +-X补 0 0 1 1 0 1 0 0 0 1 1 0 1 0 1 0 1 1 右移一位 0 0 0 0 0 0 Y3Y4=11 +0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0

32、 1 0 1 右移一位 1 1 0 0 1 1 Y2Y3=01 +X补 1 1 0 1 1 0 1 1 1 0 1 1 0 0 1 0 1 0 右移一位 0 0 1 1 0 1 Y1Y2=10 +-X补 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 右移一位 1 1 0 0 1 1 Y0Y1=01 +X补 1 1 0 1 1 1 0 0 0 1,+ + + + +,部分积 乘数Y Yi Yi+1 说明,乘积高位 乘积低位,XY补=1.01110001, XY=-0.10001111,67,3、阵列乘法器 为了进一步提高乘法器运算速度,可采 用类似人工计算的方法,用一个

33、阵列乘法器 完成X*Y乘法运算。阵列的每一行送入乘数 Y的每一位数,而各行错开形成的每一斜列 则送入被乘数的每一数位。每一个基本单元 可用1个与门和1位全加器。该方案所用加法 器数量较多,内部结构规则性强,适用超大 规模集成电路实现。,68,定点补码一位除法(加减交替法),n位数相除,要求被除数的位数要扩展成除数位数n的两倍2n位,没包括符号位在内; 由于不能自动判溢出,故需在|X|Y|即不溢出的前提下。 规则表:X补、Y补、r补分别为被除数、除数和余数,69,(1)第一步如果被除数X与除数Y同号,用XY;若两数是异号,用X+Y。 (2)求商:如果所得余数r与除数Y同号则商上1,同时将余数左移

34、一位后减去除数,即2rY;若余数与除数异号,则商上0,进行2r+Y操作。 (3)第二步如此重复执行nl 次(设如数值部分有n位)。例如n=4位有效数值,连同第一步需做5次运算,4次移位操作。 (4)当两数能除尽时,如 Y为正数,商不必加2-n;如Y为负,商需加2-n(商由反码变成补码)。当两数除不尽时若商为负,要在商的最低一位加 1,使商从反码值转变成补码值;若商为正最低位不需要加1。 (5)如最后余数与X异号,若则需要纠正余数时: X、Y同号,用+Y纠余;X、Y异号,用Y纠余。 例3.41:设X=0.0100 , Y=-0.1000, 求X/Y补=? 解: X补=00.0100,Y补=11.

35、1000,-Y补=00.1000,70,被除数X (余数r) 商 C 操作说明 0 0 0 1 0 0 0 0 0 0 0 +Y补 1 1. 1 0 0 0 X,Y异号, 1 1. 1 1 0 0 0 0 0 0 1 r与Y同号,末位上商C=1 左移 1 1. 1 0 0 0 0 0 0 1 0 低位补0 +-Y补 0 0. 1 0 0 0 因为C=1 0 0. 0 0 0 0 0 0 0 1 0 r与Y异号,末位上商C=0 左移 0 0. 0 0 0 0 0 0 1 0 0 +Y补 1 1. 1 0 0 0 因为C=0 1 1. 1 0 0 0 0 0 1 0 1 r与Y同号,末位上商C=1

36、 左移 1 1. 0 0 0 0 0 1 0 1 0 +-Y补 0 0. 1 0 0 0 因为C=1 1 1. 1 0 0 0 0 1 0 1 1 r与Y同号,末位上商C=1 左移 1 1. 0 0 0 0 1 0 1 1 0 +-Y补 0 0. 1 0 0 0 因为C=1 1 1. 1 0 0 0 1 0 1 1 1 r与Y同号,末位上商C=1 +-Y补 0 0. 1 0 0 0 因为r与X异号,故需纠余。另外 0 0. 0 0 0 0 X与Y异号,所以+-Y补 由于商值符号是1,故需在其末位加1,有反码变成补码 这样X/Y补=1.0111+0.0001=1.1000 余数为0,表示除尽。,

37、71,在计算机中,A寄存器开始时存放被除数X(补码),以后就存放余数r ,取双符号位。B寄存器存放除数Y(补码),双符号位。C寄存器存放商,初始值为0(未考虑商符之前),单符号位。 注意:书中例题3.40的第一步注释错误,应改为两数异号加Y补。,72,例3.42 X补=1.0111, Y补=1.0011, 则-Y补 =0.1101。求X/Y补=? 被除数(余数) 商 操作说明 11.0111 + 00.1101 两数同号,+-Y补 00.0100 0 余数与除数异号,商0 左移 00.1000 + 11.0011 +Y补 11.1011 01 同号,商1 左移 11.0110 + 00.110

38、1 +-Y补 00.0011 010 异号,商0 左移 00.0110 + 11.0011 +Y补 11.1001 0101 同号,商1 左移 11.0010 + 00.1101 +-Y补 11.1111 01011 同号,商1 注:1、商值为正,商不必末位加1。 2、余数与X同号,不必进行纠余 X/Y补=0.1011 余数补=1.1111x 2-4,73,3.5 浮点数的运算方法,浮点数的表示形式(以2为底): N = D 2E 其中,D为浮点数的尾数,一般为绝对值小于1的规格化二进制小数用原码或补码形式表示;E为浮点数的阶码,一般是用移码或补码表示的整数。 阶码的底除了2以外,还有用8或1

39、6表示的。,74,1 、加、减法运算,两数首先均为规格化数,在进行规格化浮点数的加减运算需经过五步完成: 对阶操作:低阶向高阶补齐,使阶码相等; 尾数运算:阶码对齐后直接对尾数运算; 规格化:对运算结果进行规格化处理; (使补码尾数的最高位和尾数符号相反)如溢出则需右规;如不是规格化时应左规。 舍入操作:丢失位进行0舍1入或恒置1处理; 判断溢出:判断阶码是否溢出,下溢则将运 算结果置0,上溢则中断。,75,具体说明如下:,对阶运算(小阶向大阶对齐) 尾数为原码时,尾数右移,符号位不动,最高位补0 尾数为补码时,尾数右移,符号也移位,最高位补符号位,(1) 求阶差,(2) 对阶原则,j = j

40、x jy =,jx= jy 已对齐,jx jy,jx jy,y 向 x 看齐,x 向 y 看齐,小阶向大阶看齐,jy+1,jx+1,76,例如: 求 =? 小阶对大阶 舍掉的是 如大阶对小阶 则舍掉的是,77,例如,解:,x补 = 00, 01; 00.1101 y补 = 00, 11; 11.0110,1. 对阶(设阶码的符号也为双符号位),j补 = jx补 jy补,= 00, 01,11, 01,11, 10,阶差为负( 2),11.1001, x+y补 = 00, 11; 11. 1001, 对阶,x补 = 00, 11; 00.0011,+,+,对阶后的Sx补, 求阶差,2. 尾数求和

41、,78,规格化:原码尾数值高位为1,补码尾数值高位与符号 相反,(1) 规格化数的定义,(2) 规格化数的判断,S0正数,真值,原码,补码,反码,规格化形式,S 0负数,规格化形式,真值,原码,补码,反码,原码 不论正数、负数,第一数位为1,补码 符号位和最高数值位不同,79,特例,S = 1, 1补 是规格化的数,80,(3) 左规,(4) 右规,上例 x+y补 = 00, 11; 11. 1001,左规后 x+y补 = 00, 10; 11. 0010, x + y = ( 0.1110)210,当 尾数溢出( 1)时,需 右规,81,例,解:,x补 = 00, 010; 00. 110100,y补 = 00, 001; 00. 101100, 对阶, 尾数求和,j补 = jx补 jy补,= 00, 010,11, 111,100, 001,阶差为 +1, y补 = 00, 010; 00. 010110,Sx补 = 00. 110100,Sy补 = 00. 010110,对阶后的Sy补,01. 001010,+,+,尾数溢出需右

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1