计算机的运算方法 第六章2_第1页
计算机的运算方法 第六章2_第2页
计算机的运算方法 第六章2_第3页
计算机的运算方法 第六章2_第4页
计算机的运算方法 第六章2_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机的运算方法定点加减运算2.8字符的表示方法现代计算机不仅要处理数值领域的问题,还要处理非数值数据,非数值数据有:

ABC…Z 26个大写

abc…z 26个小写

+-()…# 符号

012…9 数字国际上广泛采用美国国家信息交换标准代码

--

ASCII码(P214)用7位二进制编码表示,27=128字符。

ASCII字符编码表P214

b6b5b4b3b2b1b00000010100111001011101110000NULDLESP0@P、p0001SOHDC1!1AQaq0010STXDC2″2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB′7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,<L\l|1101CRGS-=M]m}1110SORS·>N↑n~1111SIUS/?O-oDEL表中编码符号的排列次序为b7b6b5b4b3b2b1b0

b7恒等于“0”,b6b5b4为高位部分,b3b2b1b0为低位部分。2.8字符的表示方法例如:

“A” =01000001 =(65)10 =(41)

H “;” =00111011 =(59)10 =(3B)H二进制代码只代表不同的字符,而无数值大小。字符串是指连续的一串字符,它占用内存中连续个存储单元.一个字节存放一个字符(字符以ASCII码表示)例如:字符串IFA>BTHENREAD(C)该字符串存放在内存中,每个字节中存放相应字符的ASCII码值,空格也占用一个字节的位置。2.8字符的表示方法例如:

字符串IFA>BTHENREAD(C)以ASCII码表示。 格式如下:

I F 空 A

B 空 T H E N 空

R E A D

( C ) 空

73 70 32 65 62 66 32 84 72 69 78 32 82 69 65 68 40 67 41 32内存中真正存放的是ASCII码2.8字符的表示方法1981年国家标准局GB2312《信息交换汉字编码字符集》收集了常用汉字6763个,分一级汉字库3755个,二级汉字库3008个。1、汉字的输入在计算机系统中使用汉字,首先要解决的问题是如何把汉字输入到计算机内,直接通过标准键盘输入,就必须为汉字设计编码输入。汉字编码方法:

数字编码(区位码,国际区位码)

拼音码(以汉语拼音基础的输入方法)

字形码(五笔字形输入法)2.8字符的表示方法1)数字编码输入

优点:无重码,内部编码转换比较方便,每个编码长度都一样。

缺点:记忆难。2)拼音编码输入:以汉语拼音输入,掌握汉语拼音的人都可以使用。优点:不需要训练,不需要记忆

缺点:汉字同音字太多,输入重码率很高,影响输入速度。3)五笔字型编码输入:以汉字的形状确定编码,汉字总数虽少,但它总是一笔一划组成,全部汉字的部首和笔画是有限的,这就是五笔字型编码。优点:无重码,速度快2.9汉字的表示方法2、汉字的存储汉字的存储有两方面的含义:字形码存储和汉字内码存储。字形码 是以点阵表示汉字字形的代码,它按汉字的输出形式存储。 输出汉字点阵有16x16点阵,24X24点阵,32X32点阵。字形码:点阵的信息量很大的,占用内存空间大, 以16X16点阵为例,每个汉字要占用32个字节, 二级汉字大约占256K字节。点阵只能用来构成字库(显示打印用),不能用于机器内存储。2.9汉字的表示方法汉字字形点阵及编码0000000010000000000000001000000000100000100000000001000010000000000100011111111000000101000000100000100101000100……回顾:

BCD码:二进码十进数(十进制)4位二进制代码表示一位0~9位的十进制数用十六进制中的C表示“+”D表示“-”,放在数字串的后面,当为偶数最高位补0当超过BCD码的表示范围的时候计算结果需要加6进行修正。数值的表示:+、-号分别用0和1表示真值用二进制表示小数点:定点表示,浮点表示定点表示的时候整数表示范围:

0≤|X|≤2n-1

小数表示范围:0≤|X|≤1-2-n回顾浮点数:N=S×rjr:基数,通常r=2。

j:阶码,常为纯整数。

S:尾数,常为纯小数。计算机中的表示:阶符+阶码+数符+尾数原码:一位符号+数据的绝对值一个二进制数X=X0X1X2…Xn,原码的编码方法是当X≥0时,[X]原是:0X1X2…Xn当X≤0时,[X]原是:1X1X2…Xn原码中+0和-0有两种表示方法原码进行运算的时候符号位需要单独处理。反码表示:原码----补码正数:数值部分与真值形式相同;负数:真值的数值部分按位取反。补码:0的补码有唯一值运算时符号位参与运算一个n+1位整数补码所能表示的数值范围为:(100…0)-2n≤x≤2n-1(011…1)回顾如果是八位二进制数:

-27≤x≤27-1(-128≤x≤127)移码:用来比较大小[X]补的符号位取反,即得[X]移如果已知机器的字长,则机器数的位数应补够相应的位。

例如:设机器字长为8位,则:

X1=1011X2=-1011[X1]原=00001011[X2]原=10001011[X1]补=00001011[X2]补=11110101[X1]反=00001011[X2]反=11110100[X1]移

=10001011[X2]反=01110101

补码加减法特点:①真值用补码表示②符号参与运算补码加减法需要解决的问题:1、实际操作(+、-)能否只取决于操作码?2、结果是否需要修正?3、如何将减法转换为加法?补码加减法补码运算关系式:(X+Y)补=X补+Y补

(1)(X-Y)补=X补+(-Y)补

(2)关系式1:操作码为“+”时,两数直接相加。例:求(X+Y)补

++++以2为模的情况下,符号位的进位1在机器中将会自动舍弃补码加减法

补码运算关系式:(X+Y)补=X补+Y补

(1)(X-Y)补=X补+(-Y)补

(2)关系式2:操作码为“-”时,将“-”转为“+”。Y补

-Y补:Y补无论正、负,将其符号位连同位数一起变反,末尾加1。如:X=+7X补=00111-X补=11001Y=-7Y补=11001-Y补=00111例:求(X-Y)补

把Y补变补1、X=4Y=-5X补=00100Y补=11011-Y补=00101+01001(+9补码)2、X=-4Y=5X补=11100Y补=00101-Y补=11011+10111(-9的补码)补码加减法注意:某数的补码表示与某数的变补是有区别的。例:补码表示10101原→1101100101原→00101

变补10011补→0110100011补→11101任意正数补码表示的时候不发生改变任意负数补码表示的时候,符号位不变,尾数变无论正、负,符号和尾数均要改变补码的机器负数补码加减法练习:X=3Y=-2,求(X+Y)补X=-4Y=1,求(X-Y)补算法流程

操作数用补码表示,符号位参加运算

X补+Y补

X补+(-Y)补

结果为补码表示,符号位指示结果正负ADDSUB逻辑实现1、控制信号+A:打开控制门,将A送入ALU+B:打开控制门,将B送入ALU+B:打开控制门,将B送入ALU

+1:控制末位加1加法器输出端:ALU→A:打开控制门,将结果送A输入端CPA:将结果打入A

2、补码加减运算器结构ALUA(X补)B(Y补)+AB+B+1ACPAALU→AB+B溢出同符号相加或异符号相减其结果绝对值增大。当结果的绝对值超出数的表示范围的时候就会发生溢出。

溢出原因分析:寄存器的位数一旦确定下来,就有了容量的限制,数值表示的范围就固定了!

如果运算过程中数值位超出了机器允许表示的范围,跑到符号位上从而改变了符号的性质,则产生溢出。0111111110000000符号位数值位溢出判断

1)A=3B=23+2:0001100010+00101√2)A=10B=710+7:0101000111+10001×3)A=-3B=-2-3+(-2):1110111110+11011√4)A=-10B=-7-10+(-7):1011011001+011115)A=6B=-46+(-4):0011011100+00010×√6)A=-6B=4-6+4:1101000100+11110√正溢负溢溢出判断数A有4位尾数,1位符号位:SA数B有4位尾数,1位符号位:SB

结果符号:Sf

符号位进位:Cf尾数最高位进位:C双符号位:第一位符号位:Sf1第二位符号位:Sf21)A=3B=23+2:0001100010+00101溢出判断1、SA、SB与Sf的关系(硬件判断逻辑一)溢出=SASBSf+SASBSf2、Cf与C的关系(硬件判断逻辑二)2)A=10B=710+7:

01010

00111+

100014)A=-10B=-7-10+(-7):10110

11001+

01111溢出判断

1)A=3B=23+2:0001100010+00101√2)A=10B=710+7:0101000111+10001×3)A=-3B=-2-3+(-2):1110111110+11011√4)A=-10B=-7-10+(-7):1011011001+011115)A=6B=-46+(-4):0011011100+00010×√6)A=-6B=4-6+4:1101000100+11110√正溢负溢Cf=0C=0C=1C=1C=0C=1C=0Cf=0Cf=1Cf=1Cf=1Cf=0111111溢出=Cf⊕C溢出判断--3、双符号位判断(硬件判断逻辑三)

1)A=3B=23+2:

000011

000010+

000101√2)A=10B=710+7:

001010

000111+

010001×3)A=-3B=-2-3+(-2):

111101

111110+

111011√4)A=-10B=-7-10+(-7):110110

111001+

1011115)A=6B=-46+(-4):

000110

111100+

000010×√6)A=-6B=4-6+4:

111010

000100+

111110√正溢负溢第一符号位Sf1第二符号位Sf2溢出=Sf1⊕Sf2移位操作乘法运算可以通过硬件实现,也可以通过软件来实现;硬件实现乘法是以加法器为基础逐步累加而成。1)、软件方法:通过编写乘法程序,把乘法化为累次相加运算,从而在加法器中实现。该方法经济,但运算速度慢。2)、硬件方法:A、在加法器中增加一些移位和控制部件来实现。这种方法在早期的计算机采用。B、随着大规模集成电路的发展,现在设计了阵列乘法器。是专门实现多位数乘法的电路。

移位操作算术移位:数码位置变化,数值变化,符号位不变。

10001111(-15)

算术左移:10011110(-30)原码转补码正数尾数不变,所以移位规则不变原码转补码负数尾数变动,所以移位规则有变正数补码移位规则1、单符号位2、双符号位:原数:00111原数:000111左移:01110

左移:001110右移:0

0111左移:011100右移:0

0011右移:00

1110

右移:00

0111规则:数符不变(单:符号位补变;双:第一符号位不变)空位补0(右移时第二符号位移至尾数最高位)负数补码移位规则1、单符号位2、双符号位:原数:11011原数:110110左移:10110

左移:101100右移:1

1011右移:110110右移:1

1101右移:11

1011

规则:数符不变(单:符号位不变;双:第一符号位不变)左移空位补0

右移空位补1(第二符号位移至尾数最高位)回顾补码运算关系式:(X+Y)补=X补+Y补

(1)(X-Y)补=X补+(-Y)补

(2)关系式1:操作码为“+”时,两数直接相加。关系式2:操作码为“-”时,将“-”转为“+”。Y补变补:无论正负,符号位和数值位按位取反,末位加1溢出发生原因:数值位超出了机器允许表示的范围判断:SA、SB与Sf的关系、C和Cf的关系、Sf1和Sf2的关系移位规则:正数数符不变空位补0负数数符不变左移空位补0,右移空位补1易出错处001110011100左移:001100

右移:000110正确:011100正确:001110110110101100左移:111100右移:111110正确:101100正确:110110舍入方法1、0舍1入(原码、补码)例:保留4位尾数:000100原→00010原100101原→10011原111011补→11110补2、末位恒置1(原码、补码)例:保留4位尾数:000100原→00011原100101原→10011原111011补→11101补定点乘法运算乘法——部分累计加、移位原码一位乘法:每次用一位乘数去乘被乘数。原码运算:符号位单独处理两个原码表示的数相乘,运算规则:两个原码:n位被乘数X和乘数Y

用定点小数表示(定点整数同样) 被乘数:

[X]原=Xf

.Xn-1…X1X0

乘数:

[Y]原=Yf.Yn-1…Y1Y0

乘积符号:Xf

⊕Yf

乘积:|X||Y|

[Z]原=(Xf

⊕Yf

)+(0.Xn-1…X1X0)(0.Yn-1…Y1Y0)原码一位乘法1、算法分析例:0.1101X1.1011用笔算:

部分积

0.1101

被乘数X(4位)

×0.1011

乘数Y(4位)

0.1101 0.1101 0.0000 +0.1101

0.10001111

乘积Z(8位)上符号:1.10001111笔算方法存在的问题:1、加数增多(由乘数的尾数决定)2、加数的位数增多(与被乘数、乘数位数有关)改进办法:将一次相加改为多次累加原码一位乘法2、分步乘法每次将移位乘数所对应的部分积与原部分积的累加和相加,并移位。设置寄存器:A:存放部分累计加和、乘积高位B:存放被乘数C:存放乘数、乘积低位设置初值A=00.0000B=|X|=00.1101C=|Y|=.1011原码一位乘法步数条件操作AC1)00.0000.1011Cn

Cn=1+B+00.1101

=00.1101→00.0110

1.1012)Cn=1+B+00.110101.0011

→00.100111.103)Cn=0+0+00.000000.1001

00.0100111.14)Cn=1+B+00.110101.0001

→00.10001111X原×Y原=1.10001111原码一位乘法算法流程0→A、|X|→B、|Y|→C、0→CRCn=1?1/2(A+B)→A,C→YNCR+1→CRCR=n?N1/2(A+0)→A,C→Sx⊕Sy→SAY原码一位乘法3、运算规则①操作数、结果用原码表示;②绝对值参与运算,符号位单独处理;③被乘数(B)、累加和(A)取双符号位;④乘数末位(Cn)为判断位,其状态决定下一步操作;⑤作n次循环(累加、右移)练习已知:X=-0.1001,Y=1110,求[X*Y]原按运算步骤写补码一位乘法1、算法分析X补=X0.X1X2......Xn(1)Y为正:Y补=0.Y1Y2......Yn

(XY)补=X补(0.Y1Y2......Yn)(2)Y为负:Y补=1.Y1Y2......Yn

(XY)补=X补(0.Y1Y2......Yn)+(-X)补(3)Y符号任意:(XY)补=X补(0.Y1Y2......Yn)+(-X)补Y0

(Y0:Y的符号位)补码一位乘法[X]补

=0.1101,[Y]补

=1.0101。[XY]补=1.01110001=|X||Y|+[-X]补

00.0000 设部分乘积A=0+00.1101 Yn=1,+[X]补

00.1101 00.01101 A、C同时右移一位

+00.0000 Yn=0,+000.0110 00.001101 A、C同时右移一位

+00.1101 Yn=1,+[X]补

01.0000 00.1000001 A、C同时右移一位

+00.0000 Yn=0,

00.1000 00.01000001 A、C同时右移一位

+[-X]补

11.0011结果+[-X]补校正

[XY]补=11.01110001补码一位乘法展开为部分积的累加和形式:(XY)补=X补(0.Y1Y2......Yn)+(-X)补Y0=X补(0.Y1Y2......Yn)-X补Y0

=X补(-Y0+2-1Y1+2-2Y2......+2-nYn)(Y1-2-1Y1=2-1Y1/2-1Y2-2-2Y2=2-2Y2......)=X补[-Y0+(Y1-2-1Y1)+(2-1Y2-2-1Y2)+......+(2-(n-1)Yn-2-nYn)]

=X补[(Y1-Y0)+2-1(Y2-Y1)+2-2(Y3-Y2)+......+2-n(0(Yn+1)-Yn)]

比较法:用相邻两位乘数比较的结果决定+X补、-X补或+0补码一位乘法比较法算法Yn(高位)Yn+1(低位)操作(A补为部分积累加和)

00(0)1/2A补01(1)

1/2(A补+X补)10(-1)

1/2(A补-X补)11(0)

1/2A补运算实例X=-0.1101,Y=-0.1011,求(XY)补初值:A=00.0000,B=X补=11.0011,

-B=(-X)补=00.1101,C=Y补=1.0101补码一位乘法步数条件操作AC1)CnCn+100.00001.01010CnCn+1

10-B+00.1101

=00.1101→00.0110

11.01012)01+B+11.001111.1001

→11.1100

111.0103)10-B+00.110100.1001

00.0100

1111.014)01+B+11.001111.0111

→11.101111111.0补码一位乘法步数条件操作AC

CnCn+100.00001.01010CnCn+14)01+B+11.001111.0111→11.1011

11111.05)10-B+00.1101

修正00.1000

1111

(XY)补=0.10001111运算规则:①A、B取双符号位,符号参加运算;②C取单符号位,符号参加移位,以决定最后是否修正;③C末位设置附加位Cn+1,初值为0,CnCn+1组成判断位,决定运算操作;④作n步循环,若需作n+1步,则不移位,仅修正。1.0:-B修正0.1:+B修正0.0:不修正1.1:不修正回顾:舍入方法:1、0舍1入2、末位恒置1原码一位乘法:乘积符号:Xf⊕Yf

乘积:|X||Y|

设置寄存器:A:存放部分累计加和、乘积高位B:存放被乘数C:存放乘数、乘积低位补码一位乘法:用相邻两位乘数比较的结果决定+X补、-X补或+0回顾:原码运算规则①操作数、结果用原码表示;②绝对值参与运算,符号位单独处理;③被乘数(B)、累加和(A)取双符号位;④乘数末位(Cn)为判断位,其状态决定下一步操作;⑤作n次循环(累加、右移)补码运算规则:①A、B取双符号位,符号参加运算;②C取单符号位,符号参加移位,以决定最后是否修正;③C末位设置附加位Cn+1,初值为0,CnCn+1组成判断位,决定运算操作;④作n步循环,若需作n+1步,则不移位,仅修正。练习

X=0.1001,Y=-0.0111,求(XY)补定点除法运算除法——若干余数与除数加减、移位例:0.10110÷0.11111(手算)

0.101100.11111丿0.101100

-11111110100-11111101010-1111110110

0.0000010110商:0.10110余数:0.10110×2-5

实现除法的关键:比较余数、除数绝对值大小,决定上商。原码恢复余数法1、算法比较两数大小可用减法试探。

为正:够减,商1.2×余数-除数=新余数为负:不够减,商0,恢复原余数2、实例X=-0.10110,Y=0.11111,求X/Y,给出商Q和余数R.设置:A:被除数、余数,B:除数,C:商初值:A=|X|=00.10110B=|Y|=00.11111-B=11.00001C=|Q|=0.00000原码恢复余数法分布运算 步数条件操作AC1)SA00.10110r00.00000Cn

-B+11.00001

11.10111r1'

0.Q02)1+B恢复余数+00.11111

0

00.10110

r1

3)←01.011002r1-B+11.00001

000.01101r2

0.1Q14)←00.110102r2-B+11.00001

11.11011r3'0.10Q25)1

+B恢复余数+00.1111100.11010r3

6)←01.101002r3-B+11.00001000.10101r4

0.101Q3

原码恢复余数法步数条件操作AC00.10110r00.00000Cn6)←01.101002r3-B+11.00001000.10101r4

0.101Q37)←01.010102r4-B+11.00001000.01011r5

0.1011Q48)←00.101102r5-B+11.00001111.10111r6

0.10110Q59)+B恢复余数+00.11111

00.10110

Q=-0.10110R=-0.10110×2-5(与被除数同号)-0.10110×2-5X/Y=-0.10110+0.11111

练习:X=-0.1011Y=0.1101求X/Y。原码恢复余数法运算规则①A、B双符号位,X、Y绝对值,|X|小于|Y|②运算结束后,余数乘以2-n,与被除数同号。原码不恢复余数法(加减交替法)1、算法分析第二步:2r1-B=r2'<0第二步:2r1-B=r2<0第三步:r2'+B=r2(恢复余数)第三步:2r2+B=r3第四步:2r2-B=r3=2(r2'+B)-B=2r2'+B=r3原码不恢复余数法(加减交替法)2、算法

ri+1==2ri+(1-2Qi)Yri为正,则Qi为1,第i+1步作2ri-Y;ri为负,则Qi为o,第i+1步作2ri+Y;3、实例X=0.10110,Y=-0.11111,求X/Y,给出商Q和余数R

初值:A=|X|=00.10110B=|Y|=00.11111-B=11.00001C=|Q|=0.00000原码不恢复余数法步数条件操作ACr00.10110r00.00000Cn

1)-B+11.00001111.10111r0

0.00000Q0←11.011102r0+B+00.111112)000.01101r1

0.10000Q1←00.110102r1-B+11.000013)

1

11.11011

r20.10000Q2←11.101102r2

+B+00.111114)000.10101r3

0.10100Q3←01.010102r3-B+11.000015)000.01011r4

0.10110Q4←00.101102r4-B+11.00001111.10111r50.10110Q5原码不恢复余数法步数条件操作ACr00.10110r00.00000Cn5)000.01011r4

0.10110Q4←00.101102r4-B+11.00001

111.10111r50.10110Q56)+B恢复余数+00.1111100.10110运算规则①A、B取双符号位,X、Y取绝对值运算,|X|<|Y|。②根据余数的正负决定商值及下一步操作。③求n位商,作n步操作;若第n步余数为负数,则第n+1步恢复余数,不移位。

0.10110×2-5X/Y=-0.10110+-0.1111

练习X=-0.10101除数Y=0.11011求X/Y。补码不恢复余数法如何判断是否够减?如何上商?与原码相同吗?如何确定商符?一、判断减①同号相除10104丿77丿4-4丿-7-7丿-4-4-7-(-4)-(-7)

3-3-33

够减不够减够减不够减

够减:r与X、Y同号;不够减:r与X、Y异号补码不恢复余数法②异号相除1010-4丿7-7丿44丿-77丿-4+(-4)+(-7)+4+73-3-33

够减不够减够减不够减异号:够减:r与X同号,与Y异号;不够减:r与X异号,与Y同号。补码不恢复余数法判断规则:X补÷Y补同号:X补-Y补:①够减:r补与Y补同号②不够减:r补与Y补异号异号:X补+Y补:①够减:r补与Y补异号②不够减:r补与Y补同号二、求商值比较原码负商和补码负商补码不恢复余数法同号:(商为正)够减:商1(r补与Y补同号)

不够减:商0

(r补与Y补异号)异号:(商为负)够减:商0(r补与Y补异号)

不够减:商1(r补与Y补同号)上商规则:Qi=Sri⊕SY

余数与除数同号商1,异号商0补码不恢复余数法算法(ri+1)补=2ri补+(1-2Qi补)Y补ri补与Y补同号,则Qi补为1,第i+1步作2ri补-Y补;ri补与Y补异号,则Qi补为0,第i+1步作2ri补+Y补;求商符令X补=r0补

r0补与Y补同号:

Q0补=1与实际商符相反

异号:Q0补=0商的修正①求n-1位商(假商)②第n位商(末位商)恒置1

③商符变反④余数求至rn补码不恢复余数法求:X=0.10110,Y=-0.11111,求X/Y,给出商Q和余数R。初值:A=X补=00.10110B=Y补=11.00001-B=00.11111C=Q补=0.0000步数条件操作ACCn-1r、Y00.101100.00000)异求商符

+B

+11.00001

1)

同11.10111r01

←11.01110

-B+00.111112)异00.01101r11.0

←00.11010

+B+11.00001

3)同11.11011r21.01

←11.10110

-B+00.111114)

00.10101r31.010

←01.01010

+B+11.000015)

异00.01011r41.0100补码不恢复余数法步数条件操作ACCn-1r、Y00.10110r00.00005)

+B+11.00001

异00.01011r41.01006)

←00.10110

+B+11.0000111.10111r5假商=0.0100真商=0.0100+1.00001=1.01001真值:Q=-0.10111R=-0.01001×2-5

-0.01001×2-5X/Y=-0.10111+-0.11111补码不恢复余数法运算规则①A、B取双符号位,符号参与运算,并且|X|<|Y|;②根据余数与除数的符号决定商值及下一步操作;③求n-1位商,作n步操作(求出rn);④对商校正(第n位商恒置1)。练习求:X=0.10110,Y=-0.11111,求X/Y给出商Q和余数R。练习:X=0.10101除数Y=0.11011求X/Y。运算公式/算法ABC判断方法判断结果对应操作步骤备注(X+Y)补X补+Y补--------------补码表示(X-Y)补X补+(-Y)补--------------(-Y)补(XY)原(Xf

⊕Yf)+(0.Xn-1…X1X0)(0.Yn-1…Y1Y0)累加和乘积高位00.0000被乘数|X原|Xf1Xf2.Xn-1...X0乘数|Y原|.Yn-1...Y0乘数末位Cn01+0+Bn(乘数位数)步移位和操作(XY)补X补(0.Y1Y2......Yn)+(-X)补Y0累加和乘积高位00.0000X补-X补符号+数值乘数Y补Yf.Y1...Yn乘数后两位Cn+1-Cn01-1+0+B-Bn步/n+1步操作需判断结果是否需要修正Cn+1-Cn(最后两位)=0不修正,=1+B修正,=-1-B修正。(X/Y)原ri+1=2ri+(1-2Qi)Y被除数、余数|X|原除数|Y|原-|Y|原商0.0000ri余数符号01Q1-YQ0+Yn步/n+1步操作需判断是否需要恢复余数余数为负+Y修正(X/Y)补(ri+1)补=2ri补+(1-2Qi补)Y补被除数、余数X补除数Y补-Y补商0.0000Sri⊕SY同号:1负号:0Q1:2ri补-Y补Q0:2ri补+Y补

n步求余数n-1步求商需判断是否需要恢复余数校正商值:商符变反,第n位商恒置1浮点四则运算4位数:整数:0~~24-1(表示范围)

可表示的最小值:1(精度)小数:1-2-4

(表示的最大范围)可表示的最小值:2-4(精度)浮点数的表示形式:

X=S·2j=定点小数*2定点整数J:阶符,表示数扩大还是缩小;阶码,为定点整数,用补码或移码表示,其位数决定数值范围;8位为例:2-128~~2127S:数符,表示数的正负数值,定点小数,原码或补码表示。其位数决定数的精度;

浮点加减运算尾数规格化0.01010.00110.101×2-10.11×2-101/2≤|S|<1,最高位有效位绝对值为1移码运算特点:1)最高位符号位,1表示正号,0表示负号。如果是双符号位,最高位保持0:01正数,00负数。溢出判断:最高位为1,10上溢,11下溢。2)在计算机中,移码只执行加减法运算,且运算结果符号位取反修正;得到[X]移。例如:X=+1010Y=+0011,则[X]移=11010[Y]移=10011[X]移+[Y]移=11010+10011=01101,修正:[X+Y]移=11101浮点加减运算

[X+Y]移=[X]移+[Y]补

=

11010+00011=11101步骤:1、检测能否简化操作判断操作数是否为0:①尾数为0;②阶码下溢2、对阶(?例)①使两数阶码相等②对齐规则:小阶向大阶对齐运算法则:

[X+Y]移=

[X]移+[Y]补 [X-Y]移=

[X]移+[-Y]补浮点加减运算例:22×0.1001=10.01=010.01=23×0.010123×0.1101=110.1=110.1=23×0.1101③、对阶操作:小阶阶码增大,尾数右移④、阶码比较:比较线路或减法3、尾数加减AS(+、-)BS保存在存放结果的寄存器中4、结果规格化1)1.000120.0101+0.1001+0.11011.10101.0010|S|<1/2,应左移规格化|S|>1,应右移规格化浮点加减运算左移规格化:11.0001+00.1001

11.1010Af1Af2A1若Af1Af2A1+Af1Af2A1=1,则左规:(-1/2)除外AsAJ-1→AJ右移规格化00.0101+00.1101

01.1110Af1Af2

若Af1⊕Af2=1,则右规:(-1/2)除外AsAJ+1→AJ浮点加减运算尾数符号01或10:尾数溢出。右规:尾数(带符号)右移1位,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论