版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章数据的表示和运算主要内容:数制与编码定点数的表示和运算定点数的表示:无符号数的表示;有符号数的表示。定点数的运算:定点数的移位运算;补码定点数的加/减运算;定点数的乘/除运算;溢出概念和判别方法。浮点数的表示和运算算术逻辑单元
ALU2.2定点数的表示和运算定点数:在计算机中,小数点位置固定不变的数。(1)无符号数的表示 机器字长的全部位数均用来表示数值的大小,相当于数的绝对值。对于字长为n位的无符号数的表示范围为:0—2n-1。(2)带符号数的表示在计算机中将数的符号数码化。一般规定二进制的最高位为符号位,最高位为“0”表示该数为正,为“1”表示该数为负。这种在机器中使用符号位也被数码化的数称为机器数。根据符号位和数值位的编码方法不同,机器数分为原码、补码和反码等。定点整数、定点小数2.2.1定点数的表示数值范围和数据精度数值范围数值范围是指一种类型的数据所能表示的最大值和最小值。数据精度通常指实数所能给出的有效数字位数;对浮点数来说,精度不够会造成误差,误差大量积累会出问题。定点小数表示:X=X0X-1X-2…X-(n-1)[X]原=X
1-X
-(1-2-(n-1))≤
X≤0-1
≤X≤0Mod20≤X≤
1-2-(n-1)(纯小数)原码,反码,补码的定义n位字长(1位符号位,n-1位数值位)X(2-2-(n-1))+X[X]反=X
2+X[X]补=
-(1-2-(n-1))≤
X≤00≤X≤
1-2-(n-1)0≤X≤
1-2-(n-1)实例:X1=0.1011-0.10110.0000[X]原
=01011110110000010000
说明:原码是符号位加数的绝对值,符号0正1负
原码零有两个编码,+0和-0的编码不同
原码难以用于加减运算,但乘除方便(纯小数)原码的定义与说明定义:[X]原=X
1-X
-(1-2-(n-1))≤
X≤00≤X≤
1-2-(n-1)实例:X1=0.1011-0.10110.0000[X]补
=01011
10101
00000说明:补码最高一位是符号位,符号0正1负
补码表示为:2×符号位+数的真值
补码零只有一个编码,故能表示-1
补码能很好地用于加减(乘除)运算(纯小数)补码的定义与说明定义:X
2+X[X]补=-1
≤X≤0Mod20≤X≤
1-2-(n-1)补码的一些补充说明由[X]补(X0X1X2…Xn)求真值X[X]补
=2X0+X→X=[X]补
-2X0=X0X1X2…Xn-2X0=-X0+(-X0+X0X1X2…Xn)=-X0+0.X1X2…Xn负数的[X]补与[X]反的关系由[X]反
=(2–2-n)+X,[X]补=2+X可得到:[X]补
=[X]反
+2-n补码的一些补充说明得到一个数补码表示的简便办法当X≥0时,[X]补的符号位取0,数值位取X的各数值位上的值,此时有[X]补=X
当X<0时,[X]补的符号位取1,将X的各数值位取反,再在最低位加1,以得到[X]补的各数值位上的值
(见负数[X]补与[X]反的关系)[X]原与[X]补的相互转换简便方法从[X]原求[X]补时,对正数或零,有[X]补=[X]原,对负数则符号位不变,各数值位变反后再在最低位执行加1操作由[X]补求[X]原时,对负数仍是符号位不变,各数值位变反后再在最低位执行加1操作已知[y]补如何简单求[-y]补
<Ⅰ>[y]补
=0y1
y2
yn…y=0.y1y2
yn…y=0.y1
y2
yn…[y]补
=1y1
y2
yn+2-n…<Ⅱ>[y]补
=1y1
y2
yn…[y]原
=1y1y2
yn+2-n…
y=(0.y1y2
yn
+2-n)…
y=0.y1y2
yn+2-n……[y]补
=0y1
y2
yn+2-n每位取反,即得[y]补[y]补连同符号位在内,末位加1每位取反,即得[y]补[y]补连同符号位在内,末位加1整数的编码表示整数的原码
反码
补码表示与小数的三种表示基本相同差别仅表现在小数点的位置可以认为整数的小数点在最低数值位的右侧因此整数的模与整数位数有关讲课中不大用整数讲原反补
码定义例如:整数6位编码(1位符号位,5位数值位)X=+01110[X]原=001110[X]补=001110X=-01110[X]原=101110[X]补=110010X为真值整数的机器数n位字长(1位符号位,n-1位数值位)[X]原=X
2n-1-X
-(2n-1-1)≤
X≤00≤X≤
2n-1-1X(2n-1)+X[X]反=
-(2n-1-1)≤
X≤00≤X≤
2n-1-1X
2n+X[X]补=-2n-1
≤X≤00≤X≤
2n-1-1(mod2n)000000000000000100000010…011111111000000010000001111111011111111011111111…二进制代码无符号数对应的真值原码对应的真值补码对应的真值反码对应的真值128129012127…253254255…-128-127-3-2-1…0+1+2+127…-127-126-2-1-0…+0+1+2+127…-0-1-125-126-127…+0+1+2+127…设机器数字长为8位(含1位符号位),表示整数时,每个编码分别代表无符号数、原码、补码和反码的真值各为多少?整数的移码表示(用于浮点数阶码)[X]移
=2n-1+X移码定义:X为真值,若机器字长为n位移码在数轴上的表示例如:n=8x=10100[x]移
=27+10100x=–10100[x]移
=27
–10100=10010100=01101100-2n-1
≤X≤
2n-1
-1[X]移2n–12n-12n-1
–1–2n-100真值X[X]移
=2n-1+X=2n+2n-1+X=2n-1+[X]补原、反、补、移码表示小结正数的
原码、反码、补码表示均相同,符号位为0,数值位同数的真值。0的原码和反码有2个编码,补码和移码只1个码负数的
原码、反码、补码表示均不同,符号位为1,数值位:原码为数的绝对值反码为每一位均取反补码为反码再在最低位+1由[X]补求[-X]补:无论正、负,每一位取反后再在最低位+1同一个整数的移码与补码仅符号位相反。2.2.2定点数的运算(1)定点数的移位运算移位是一种常用的操作,例如,在乘法中需要右移,在除法中需要左移,在代码处理中也经常需要移位操作。移位可分为算术移位和逻辑移位,有左移和右移之分。可以对寄存器或存储单元中的数据进行移位。一次可以只移一位,也可以按指令中规定的次数移若干位。①算术移位:移位的对象是数值型数据,在移位后会发生数值大小的变化。对于二进制数,左移,绝对值扩大;右移,绝对值缩小。算术移位规则:符号位不变②逻辑移位:包括逻辑左移、逻辑右移、循环左移和循环右移等。逻辑移位使代码序列进行循环移位或非循环移位,参与移位的对象被视为纯逻辑意义上的代码组合,逻辑移位只是使数码位置发生变化,没有正、负性质,也没有数值大小问题。③算术移位和逻辑移位的区别:算术移位:带符号数移位逻辑移位:无符号数移位(2)补码定点数的加/减运算
n位字长①
加法
整数[X+Y]补=[X]补+[Y]补
(mod2n)小数[X+Y]补=[X]补+[Y]补
(mod2)②
减法整数[X-Y]补=
[X+(-Y)]补=[X]补+[-Y]补
(mod2n)小数[X-Y]补=
[X+(-Y)]补=[X]补+[-Y]补
(mod2)无需符号判定,数值位连同符号位一起相加,符号位产生的进位自然丢掉。关键是由[Y]补求[-Y]补,
[-Y]补=对[Y]补
逐位取反再在最低位加1。实现补码加减运算的逻辑电路X←X+YX←X-YF←
XF←YX←F加F←XFs加法器(ALU)目的寄存器源寄存器选通门二选通门选通门F←1XYF←YX←F0101F←YFsOVRZC累加器YF←XF←YF←1X←
F减00000111实现补码加运算的执行过程X←X+Y完成加运算,需要把被加数和加数送ALU的输入端,运算结果要接收到累加器,需要给出命令:F←XF←YX←FF←XF←YX←FFs
加法器
0101011010110001选通门二选一选通门XYFsOVRZC被加数/和Y加数CP101100010101011000000111CP命令建立数据传送加运算存结果命令建立00000111数据传送命令建立实现补码减运算的逻辑电路F←XF←YX←FFs
加法器
0101011011110001选通门二选一选通门XYFsOVRZC被减数/差Y减数CPCP命令建立数据传送加运算存结果命令建立数据传送命令建立F←1100001110
01100101
01010110
01100101
X←X–Y完成减运算,需要把被减数和减数送ALU的输入端,运算结果要接收到累加器,需要给出命令:F←XF←Y,F←1X←F(3)溢出概念和判别方法当运算结果超出机器数所能表示的范围时,称为溢出。一旦溢出,运算结果就不正确了,因此必须将溢出的情况检查出来。主要判别方法:①单符号位:当任意符号两数相加时,设Cf为最高数值位的进位,Cs为符号位的进位,若Cf=Cs,运算结果正确;若Cf≠Cs
,则产生溢出。
溢出条件:OV=Cs⊕Cf
。②双符号:变形补码,第一符号位Sf1,第二符号位Sf2,正数的双符号位为00,负数的双符号位为11。符号位参与运算,当结果的两个符号位不相同时为溢出。溢出条件OV=Sf1⊕Sf2
。补码加减法溢出判断方法一:单符号位:数值位有向符号位的进位,但符号位不产生向更高位的进位,数值位没有向符号位的进位,但符号位产生向更高位的进位方法二:双符号位:运算结果为01
(正溢)或10(负溢),最高符号位Sf1
代表其真正的符号判断溢出的逻辑电路如何实现呢?补码加减法运算实例X=0.1011y=-0.0101[X]补
=001011,[Y]补
=111011模
4补码
[-Y]补
=000101
001011001011+111011+0001011000110010000X+Y(不溢出)X-Y(溢出)正数加负数不会溢出符号位和数值位都产生进位双符号位结果相同不是溢出正数加正数结果为负是溢出数值位有进位符号位无进位是溢出双符号位结果不相同是溢出判断溢出的2套方案是一个事实的2种不同的表述单符号位判断数值位向符号位有进位但符号位无进位输出或数值位向符号位没有进位但符号位本身有进位输出是溢出双符号位判断运算结果的2个符号位的值不相同表明有溢出(4)定点数的乘法运算原码一位乘法:两个原码数相乘,其乘积的符号为相乘两数的异或值,数值为两数绝对值之积。补码一位乘法:乘法直接用补码进行,以减少转换次数。[X]原=X0.X1X2…Xn,X0为符号[Y]原=Y0.Y1Y2…Yn,Y0为符号①原码一位乘运算方案符号位异或,绝对值相乘原码一位乘运算方案0.1101*0.1011110111010000+11010.10001111
解决方案:
1.每次求出部分积,不是一次总累加
2.变每次左移被乘数为右移部分积,移出的部分保存起来(保存到哪?)3.乘数放到一个移位寄存器中,判乘数每一位的值用最低的一位线路该方案用于计算机会有问题:
1.加法器只有两个数据输入端
2.加法器与乘运算数据位数相同
3.如何判断乘数每一位是0或者1例:X=0.1101,Y=0.1011,求X·Y=?最终乘积原码表示:
010001111手工运算过程:实现原码一位乘法的逻辑线路图加法器部分积被乘数乘数
F最低位加运算移位线路每位1套第i位第i位第i+1位第i-1位F/2→XF→XF*2→X移位电路最高位三选一电路被乘数作为加数,用乘数最低位的值控制累加,结果右移一位存部分积寄存器,并且乘数同时右移一位。部分积的最低位移入到乘数的最高位计数器Cd原码一位乘运算过程举例X=0.1101Y=0.1011【例】设X=0.1101,Y=0.1011,求X·Y。其中寄存器B=X,计数器Cd=4。计算过程:00000010110011010011010001101101001101010011001001111000000000100100010011110011010100010010001111+x右移一位→+x右移一位→+0右移一位→+x右移一位→部分积A乘数C乘积高位乘积低位1(丢失)1(丢失)0(丢失)1(丢失)X•Y=0.10001111
原码一位乘运算规则①操作数、结果用原码表示②绝对值运算,符号单独处理③
被乘数(B)、部分积(A)取双符号位④
乘数末位(Cn)为判断位,其状态决定下步操作⑤作n次循环(累加、右移)特点绝对值运算逻辑移位用移位的次数判断乘法是否结束原码一位分步乘法每次将一位乘数所对应的部分积与原部分积的累加和相加,并移位。硬件:设置3个寄存器(具有右移位功能):
A:存放部分积累加和、乘积高位
B:存放被乘数
C:存放乘数、乘积低位
设置初值:
A=00.0000B=X=00.1101C=Y=.1011
一个全加器
算法流程0A、XB、YC、nCdCn=1?Cd=0?1/2(A+B)A,C1/2(A+0)A,C
Cd-1CdYYNNB0⊕C0
A0②定点补码一位乘法原码乘法存在的缺点是符号位需要单独运算,并要在最后给乘积冠以正确的符号。补码乘法是指采用操作数的补码进行乘法运算,最后乘积仍为补码,能自然得到乘积的正确符号。算法分析:
由已推导过的Y=-Y0+0.Y1Y2…Yn,得
[X·Y]补
=[X]补(0.Y1Y2…Yn)+[-X]补Y0符号位[X]补
=X0.X1X2…Xn[Y]补
=Y0.Y1Y2…Yn
展开为部分积的累加和形式:[X·Y]补=[X]补(0.Y1Y2…Yn)+[-X]补Y0
=[X]补(0.Y1Y2…Yn)-[X]补Y0
=[X]补(-Y0+2-1Y1+2-2Y2+…+2-nYn)=[X]补
=[X]补比较法—布斯(Booth)算法:用相邻两位乘数比较的结果决定加[X]补、[-X]补或0。
(-Y0+(Y1-2-1Y1)+(2-1Y2-2-2Y2)+…
+(2-(n-1)Yn-2-nYn))[(Y1-Y0)+2-1
(Y2-Y1)+2-2(Y3-Y2)+…
+2(0-Yn)-n
+2(0-Yn)-nYn+1
+2(0
-Yn)-nYn+1Yn(高位)Yn+1(低位)操作(A补为部分积累加和)00011011
1/2A补
1/2(A补+[X]补)1/2(A补+[-X]补)1/2A补(0)(1)(-1)(0)布斯算法:在乘数Yn后添加Yn+1=0。按照Yn+1,Yn相邻两位的三种情况,其运算规则如下:右移一位Booth算法运算规则①部分积A、被乘数B取双符号位,符号位参加运算;②乘数C取单符号位,符号参加移位,以决定最后是否修正;③C末位设置附加位Cn+1,初值为0,CnCn+1组成判断位,决定运算操作,作n步循环;④
第n+1步(可能不用)由(Y1-Y0)决定,仅修正,不移位。【例】X=-0.1101,Y=0.1011,求[X·Y]补。初值:A=00.0000,B=[X]补=11.0011,-B=[-X]补=00.1101,C=[Y]补=0.1011计算过程:0000000.10110初始值,最后一位补0001101Y4Y5=10+[-X]补001101000110101011右移一位000000Y3Y4=11+0000110000011010101右移一位110011Y2Y3=01+[X]补110110111011001010右移一位001101Y1Y2=10+[-X]补001000000100000101
右移一位110011Y0Y1=01+[X]补1101110001+→+→+→+→+部分积乘数YYiYi+1
说明乘积高位乘积低位[X·Y]补=1.01110001,X·Y=-0.10001111不移位(5)定点除法运算定点原码一位除法恢复余数法:被除数(余数)减去除数,如果为0或者为正值时,上商为1,不恢复余数;如果结果为负,上商为0,再将除数加到余数中,恢复余数。余数左移1位。加减交替法:当余数为正时,商上1,求下一位商的办法,余数左移一位,再减去除数;当余数为负时,商上0,求下一位商的办法,余数左移一位,再加上除数。定点除法运算定点补码一位除法(加减交替法)如果被除数与除数同号,用被除数减去除数;若两数异号,被除数加上除数。如果所得余数与除数同号商上1,否则,商上0,该商为结果的符号位。求商的数值部分。如果上次商上1,将除数左移一位后减去除数;如果上次商上0,将余数左移一位后加除数。然后判断本次操作后的余数,如果余数与除数同号商上1,如果余数与除数异号商上0。如此重复执行n-1次(设数值部分n位)。商的最后一位一般采用恒置1的办法,并省略了最低+1的操作。此时最大的误差为2-n。【例】设被除数X=0.1011,Y=0.1101,用原码加减交替法求X/Y=?解:设置寄存器:A寄存器中开始时存放被除数的绝对值,以后将存放各次余数,取双符号位。B寄存器存放除数的绝对值,取双符号位。C寄存器同来存放商,取单符号位。[|Y|]补=00.1101,[-|Y|]补=11.0011加减交替法处理思想:先减后判,如减后发现不够减,则在下一步改作加除数操作。要点:被除数|X|<除数|Y|,取原码尾数的绝对值相除,符号位单独处理,商的符号为相除两数符号的异或。被除数的位数要扩展成除数位数n的两倍(2n位),其低位的数值部分开始时放在商寄存器中。在具体运
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版本二手房买卖合同针对房产税缴纳的约定3篇
- 2025年个人水利工程建设与维护承包合同模板4篇
- 2025年度生态环保幕墙材料采购与安装劳务分包合同范例4篇
- 二零二五版汽车4S店促销员销售服务合同3篇
- 2025年度新材料研发与应用推广咨询服务合同4篇
- 二手住宅买卖合同(海南版2024)
- 专利技术成果实施许可合同(2024版)版B版
- 2025年度智慧城市运营管理出资合同4篇
- 二零二五年度危险品运输合同框架协议2篇
- 二零二五年度宠物活体活体领养援助合同4篇
- 节前停工停产与节后复工复产安全注意事项课件
- 设备管理绩效考核细则
- 中国人民银行清算总中心直属企业2023年招聘笔试上岸历年典型考题与考点剖析附带答案详解
- (正式版)SJT 11449-2024 集中空调电子计费信息系统工程技术规范
- 广州绿色金融发展现状及对策的研究
- 人教版四年级上册加减乘除四则混合运算300题及答案
- 合成生物学技术在生物制药中的应用
- 消化系统疾病的负性情绪与心理护理
- 高考语文文学类阅读分类训练:戏剧类(含答案)
- 协会监事会工作报告大全(12篇)
- WS-T 813-2023 手术部位标识标准
评论
0/150
提交评论