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

上传人:sccc 文档编号:5294690 上传时间:2023-06-23 格式:PPT 页数:116 大小:1.27MB
返回 下载 相关 举报
第三章运算方法与运算器部件.ppt_第1页
第1页 / 共116页
第三章运算方法与运算器部件.ppt_第2页
第2页 / 共116页
第三章运算方法与运算器部件.ppt_第3页
第3页 / 共116页
第三章运算方法与运算器部件.ppt_第4页
第4页 / 共116页
第三章运算方法与运算器部件.ppt_第5页
第5页 / 共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十进制:Decimal 十六进制:H

2、exadecimal,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=128+24+7=159(10D)16=1162+1

3、3160=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 12 0.625=1.25 12 0.25=0.5 02 0.5=1.0 1(0.81

4、25)10=(0.1101)2,10,例:将(0.2)10 转换成二进制小数,0.2 2=0.4 00.4 2=0.8 00.8 2=1.6 10.6 2=1.2 10.2 2=0.4 00.4 2=0.8 00.8 2=1.6 10.6 2=1.2 1(0.2)10=0.001100110011.2,整数部分,11,3)其它进制之间的直接转换法,二八000 0001 1010 2011 3100 4101 5110 6111 7,1000 81001 91010 A1011 B1100 C1101 D1110 E1111 F,二 十六,0000 00001 10010 20011 30100

5、 40101 50110 60111 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,011.100,110)2=(1010011.10011)2,14,二进制转换成十六进制,例:(110110111.01101)2,(10110111.01101)2=(1B7.68)16,十六进制:1 B 7.6 8,二进制:0001,1011,

6、0111.0110,1000,二进制:1,1011,0111.0110,1,15,十六进制转换成二进制,例如:(7AC.DE)16=(0111,1010,1100.1101,1110)2=(11110101100.1101111)2,16,3、数值符号的表示,带符号数的编码 名词解释:真值和机器数 真值:正、负号加某进制数绝对值的形式。如二进制真值:X=+1011 y=-1011 机器数:符号数码化的数称为机器数 如:X=01011 Y=11011,17,3.1.2 十进制数的编码与运算,1、BCD码 8421码为有权代码,数值为 N=8d3+4d2+2d1+1d0 十进制数63.29的BCD

7、码为:0110 0011.0010 1001 2421码为有权代码,数值为 N=2d3+4d2+2d1+1d0 十进制数63.29的BCD码为:1100 0011.0010 1111 余3码为无权代码,对应8421码加3而得。除上述三种BCD码之外,还有5421码、格雷码等,18,BCD码,19,二进制码 格雷码,二进制码-格雷码(编码):从最右边一位起,依次将每一位与左边一位异或(XOR),作为对应格雷码该位的值,最左边一位不变;格雷码-二进制码(解码):从左边第二位起,将每位与左边一位解码后的值异或,作为该位解码后的值(最左边一位依然不变).,20,十进制编码的加法运算,1)“8421”B

8、CD码加法运算 BCD码运算应将每4位二进制数分为一组,组与组之间直接运算,逢十进一。但计算机中无法区分BCD码,一概作为二进制数处理,因此,计算机做此运算后须进行调整。调整方法:和9(1001)2,不调整 和9(1001)2,加6(0110)2修正,21,0 1 1 1+1 0 0 0 1 1 1 1+0 1 1 01 0 1 0 1,1 0 0 0+1 0 0 11 0 0 0 1+0 1 1 01 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)字符形式:用一

9、个字节存放一个十进制数位或符号位,存放的是09十个数字和正负号的ASCll编码值。例如,123的编码为2B 31 32 33,占用 4个连续的字节。这种方式高4位不具有数值意义,运算起来很不方便,主要用在非数值计算的应用领域。,23,(2)压缩的十进制数形式。用一个字节存放两个十进制数位,其值用BCD码或ASCll码的低4位表示。符号位也占半个字节并放在最低数字位之后,其值可从4位二进制码中的6种冗余状态中选用。例,用C(l2)表示正号;D(13)表示负号。并规定数字和符号位个数之和必须为偶数,否则在最高数字之前补一个0。例如,123被表示成12 3C(2个字节),一12被表示成01 2D(2

10、个字节)。,24,3.2 带符号数据的表示方法与加减运算,机器数:计算机中表示的带符号的二进制数.四种表示方法即原码、补码、反码和移码。,3.2.1 原码、补码、反码和移码 及运算,3.2.2 定点数和浮点数计算机中的两种表示方式,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-

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

12、+1位纯整数:2n-1,-2n N+1位纯小数:1-2-n,-1 均能表示 2n+1 个数,小数:X 1X0 X补=2+X=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

13、 1001-X 补=1 011 01 1 1,32,最大的优点就是将减法运算转换成加法运算。,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

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

15、方法,计算机中,常用补码进行加减运算 补码可将减法变加法进行运算 补码运算特点:符号位和数值位一同运算 定点补码运算在加法运算时的基本规则: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=?,解:44补=0010

16、1100,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 1 1 11 1 1 0 1 1 1 X-Y补=1

17、1110111,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补=00001010,X补=0 1 1 1 1 0 0 0+Y补=0 0 0 0 1 0

18、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表示运算结果负向溢出;11表示运算结果为负数。亦即:OVR=Sf1 Sf2=1 有溢出 OVR=Sf1 S

19、f2=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补=1 1 1.0 0 1 0 最高位1丢掉 两个符号位相同,运算结果无溢出 X+Y=-0.1110,48,例:X=0.1011,Y=0.0111,求 X+Y=?,

20、解: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 两个符号位10不同,运算结果负向溢出,50,(2)进位溢出判断法 SC,两单符号位的补码进行加减运算时,若最高数值位向符号位的进位值C与符号位产生的进位输出值S相同时则无溢出,否则溢出。例:X补=1.1 0 1+Y补=

21、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 0X+Y补=1 0.0 1 0C=1,S=1,无溢出,51,3.2.2 定点数和浮点数,数值范围:一种数据类型所能表示的最大值和最小值数据精度:实数所能表示的有效数字位数。数值范围和数据精度均与使用多少位二进制位数以及编码方式有关。计算机用数字表示正负,隐含规定小数点。采用“定点”、“浮点”两种表示形式。,52,1、数的定点表示方法,定点整数小数点位置固定在数的最低位之后 如:Dn Dn-1 D1 D0.定点小数小数点位置固定在数的符号位之后、数值最高位之前。如:

22、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)数符 阶符 阶码值.尾数值通常,阶码为补码或移码定点整数,尾数为补码或原码定点小数。,2、数的浮点表示方法,54,(2)浮点数的规格化,目的:字长固定的情况下提高表示的精度,方法:调整阶码使尾数满足下列关系:尾数用原码表示时,无论正负应满足1/2d d-1,即 1.0 x.x,55,例题:某机器用32位表示一个实数,阶码8位(含1位阶符),用定点整数补码表示;尾数2

23、4位(含数符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.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.1000000

24、001 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 用16进制表示此结果则为:09BFE000H,2)求Y=-256.5 的第一种浮点表示格式,57,3.3 二进制乘法运算,1.软件编程方法实现(时序控制乘法器)由手算到机器实现,要解决三个问题:符号问题、部分积相加进位问题、移位问题。原码乘法是先取绝对值相乘,再根据同号相乘为正、异号相乘为负,单独决定符号位。补码乘法则

25、让符号位直接参加运算,算法将会复杂一些。2.硬件快速乘法器实现 利用中大规模集成电路芯片,在一拍节中实现多项部分积的相加,成为阵列乘法器。,58,乘法运算,1.分析笔算乘法,A=0.1101 B=0.1011,AB=0.10001111,0.1 1 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.

26、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 10 0 0 1 1 0 1 1 0 10 0 1 1 0 10 1 0 0 1 10 0 1 0 0 1 1 1 1 00 0 0 0 0 00 0 1 0 0 10 0 0 1 0 0 1 1 1 10 0 1 1 0 10 1 0 0 0 10 0 1 0 0 0 1 1 1 1,+x右移一位+x右移一位+0右移一位+x右移一位,部分积 A 乘数 C,乘积高位 乘积低位,1(丢失)1(丢失)0(丢失)1(丢失),XY=0.10001111

27、,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,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、定点补码一位乘法,原码乘法存在的缺点是符号位需要单独运算,并要在最后给乘积冠以正确的符号。补码乘法是指采用操作数的补码进行乘法运算,最后乘积仍为补码,

28、能自然得到乘积的正确符号。,64,实现补码乘法有两种方法,现在广泛使用的是Booth算法,也称为比较法。这种方法在机器实现中要在乘数末位(最低位后)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寄

29、存器最末两位作判断位,决定下一步的操作。移位:在右移时,第2符号位值移入位数的最高位,第1符号位值不变且移入第2符号位,而A寄存器末位移入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 10 0 0 1 1 0 1 0 1 0 1 1 右移

30、一位0 0 0 0 0 0 Y3Y4=11+00 0 0 1 1 00 0 0 0 1 1 0 1 0 1 0 1 右移一位1 1 0 0 1 1 Y2Y3=01+X补1 1 0 1 1 01 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 00 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、阵列乘法器

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

32、)求商:如果所得余数r与除数Y同号则商上1,同时将余数左移一位后减去除数,即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补=?

33、解:X补=00.0100,Y补=11.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同号,末位

34、上商C=1 左移 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,表示除尽。,71,在计算

35、机中,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.1101+-Y补 00.0011 010 异号

36、,商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或16表示的。,74,1、加、减法运算,两数首先均为规格化数,在进行规

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

38、小阶向大阶看齐,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.尾数求和,78,规格化:原码尾数值高位为1,补码尾数值高位与符号 相反,(1)规格化数的定义,(2)规格化数的判断,S0正数,真值,原码,补码,反码,规格化形式,S 0负数,

39、规格化形式,真值,原码,补码,反码,原码 不论正数、负数,第一数位为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.

40、010110,对阶后的Sy补,01.001010,+,+,尾数溢出需右规,82,右规,x+y补=00,010;01.001010,x+y补=00,011;00.100101,右规后,x+y=0.100101 211,舍入操作:0舍1入 或 恒置1,在 对阶 和 右规 过程中,可能出现 尾数末位丢失引起误差,需考虑舍入,(1)0 舍 1 入法,(2)恒置“1”法,83,例,解:,x补=11,011;11.011000,y补=11,100;00.111000,对阶,j补=jx补 jy补,=11,011,00,100,11,111,阶差为 1,x补=11,100;11.101100(尾数补码右移最高

41、数值位补1。),x=(0.101000)2-101,y=(0.111000)2-100,+,84,尾数求和,Sx补=11.101100,Sy补=11.001000,+,110.110100,右规,x+y补=11,100;10.110100,x+y补=11,101;11.011010(采用0舍1入方式,无进位。将其转换二进制真值后为:,右规后,x y=(0.100110)2-11,85,例:求=?0舍1入后为恒置1例2:求=?0舍1入后为恒置1 判断结果的正确性(即结果的阶码是否溢出),86,2、浮点数的乘、除法运算,一、运算规则 两浮点数相乘其乘积的阶码为相乘两数阶码之和,其尾数应为相乘两数的

42、尾数之积。两个浮点数相除,商的阶码为被除数的阶码减去除数的阶码得到的差,尾数为被除数的尾数除以除数的尾数所得的商。参加运算的两个数都为规格化浮点数,乘除运算都可能出现结果不满足规格化要求的问题,因此也必须进行规格化、舍入和判溢出等操作。规格化时要修改阶码。,87,浮点乘除运算,x=Sx 2jx,y=Sy 2jy,1.乘法,x y=(Sx Sy)2jx+jy,2.除法,(1)阶码采用 补码(或移码)定点加减运算,(2)尾数乘除同 定点 运算,3.步骤,(3)规格化,(4)舍入,88,例题3.47:设:X=0.1110011*2-5,Y=(-0.1110010)*23,浮点数表示阶码4位(移码),

43、尾数8位(补码),结果取8位尾数。运算过程中阶码取双符号位。解:1.求乘积的阶码(为两阶码之和)-5原=1.101-5补=1.011-5移=0.011 EX+EY移=EX移+EY补=00011+00011=00110 2.两位数相乘(运算过程略)X*Y补=1.0011001 1001010(尾数部分)高位部分 低位部分 3.规格化处理,89,4.舍入 根据0舍1法,尾数乘积低位部分的最高位为1,在乘积高位部分的最低位加1,因此:X*Y补=1.0011010(尾数部分)5.判溢出 阶码未溢出,故结果为正确。X*Y:0110 1001 1010 阶码(移码)尾数(补码)X*Y=(-0.110011

44、0)*2-2,90,3.6 运算部件,1.定点运算部件 定点运算部件由算术逻辑运算部件ALU、若干个寄存器、移位电路、计数器、门电路等组成。ALU部件主要完成加减法算术运算及逻辑运算(其功能可参考 2 4 2节),其中还应包含有快速进位电路。2.浮点运算部件 通常由阶码运算部件和尾数运算部件两部分组成。阶码运算器是一个定点运算部件。它的功能包含:阶码大小的比较、执行加减法运算、调整其增量或减量。尾数部分是一个定点小数运算部件。它的功能包含:左移、右移、尾数加减乘除运算。为加速移位过程,有的机器设置了可移动多位的电路。,91,浮点运算电路,92,3.7 计算机中的数据校验方法,采用冗余校验方法:

45、即在基本的有效数据外,再扩充部分 位,增加部分(冗余部分)被称为校验位。将校验位与数据位一起按某种规则编码,写入存储器或向外发送。当从存储器读出或 接收到外部传入的代码时,再按相应的规则 进行判读。若约定的规则被破坏,则表示出 现错误。根据错误的特征进行修正恢复。,93,几个名词概念:码制:一种已经规定好的组合,如8421编码、余3编码等。码字:由若干代码组成的一个字。如8421码中6(0110),7(0111)码距:一种码制中任意两个码字间的最小距离。距离:两个码字之间不同的代码个数。8421码中,最小的码字间的距离为1,如0000和 0001、0010和0011等;最大码字间的距离为4,如

46、0111和1000。所以8421码制的码距为1。码距为1码制,即不能查错也不能纠错。码距越大的码制,查错、纠错能力越强。,94,3.7.1 奇偶校验法,奇偶校验法是计算机中广泛采用的检查传输数据准确性的方法。奇偶校验法的原理是:在每组数据信息上附加一个校验位,校验位的取值(0或1)取决于这组信息中1的个数和校验方式(奇或偶校验)。如果采用奇校验,则这组数据加上校验码位后数据中1的个数应为奇数个。奇校验位形成公式:C=X0 X1 Xn-1 如果采用偶校验,则这组数据加上校验码位后数据中1的个数应为偶数个。偶校验位形成公式:C=X0 X1 Xn-1,95,例如:八位信息10101011中共有5个1

47、,附加校验位后变为九位。若采用奇校验,则附加的校验位应取0值,保证1的个数为奇数个即 0 10101011;若采用偶校验则附加的校验位应取1值即 1 10101011。奇偶校验的特点:1、奇偶校验法使数据的码距为2,因而可检出数据传送过程中奇数个数位出错的情况;2、实际中两位同时出错的概率极低,奇偶校验法简便可靠易行,但它只能发现错误,却不知错在何处,因而不能自动纠正。,96,奇校验 1出错,偶校验1出错,偶形成,奇形成,D校为校验位,D校D0D1D2D3D4D5D6D7,8位数据的奇偶校验码形成电路及检码电路,97,3.7.2 海明码校验方法,海明码校验方法以奇偶校验法为基础,其校验位不是一

48、个而是一组,故其码距大于2。海明码校验方法能够检测出具体错误并纠正。原理是在数据中加入r个校验位,将数据的码距按照一定规则拉长。r个校验位可以表示2r个信息,除一个表示无误信息外,其余2r-1信息可以用来标明错误的具体位置,但由于校验位本身也可能在传送中出错,所以只有2r-1-r个信息可用,即r位校验码只可标明2r-1-r个错误信息。或2rk+r+1 k是被传送数据的位数。例如:用4个校验位能可靠传输24-1-4=11位信息;而要校验32位数据则需至少6个校验位。,98,如要能检测与自动校正一位错井发现两位错此时校验位的位数r和数据位的位数k应满足下述关系:2r-1 k+r(3.19)按式(3

49、.19),可计算出数据位k与校验位r的对应关系,如教材表3.8所示。,99,一、编码方法(以四个校验位进行说明),四个校验位最多可以校验11位数据。设:D10D9D8D7D6D5D4D3D2D1D0为11个数据位,P4P3P2P1分别为四个校验码,则编码规则是:海明码的总位数等于数据位与校验位之和;每个校验位Pi排放在2i-1的位置,例如P4排放 在第24-1=8位,其余数据位依序排列。即:D10D9D8D7D6D5D4P4D3D2D1P3D0P2P1海明码的每一位用多个校验位一起进行校验,被校验的位号等于校验它的各校验位位号和;各校验位的值为它参与校验的数据位的异或。,100,海明码校验表,

50、101,各校验位形成公式:P1=D0D1D3D4D6D8D10(1)P2=D0D2D3D5D6D9D10(2)P3=D1D2D3D7D8D9D10(3)P4=D4D5D6D7D8D9D10(4)按上述方式Pi的取值是采用偶校验时的取值,当采用奇校验时,Pi则取反。这样Pi连同数据位一起形成了海明码的各位。,102,二、检查纠错(以四个校验位进行说明),海明码数据传送到接收方后,再将各校验位的值与它所参与校验的数据位的异或结果进行异或运算。运算结果称为校验和。校验和共有四个。对偶校验来说,如果校验和不为零则传输过程中间有错误。而错误的具体位置则由四个校验和依序排列后直接指明。如果四个校验和 S4

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号