搜索

§22定点加法、减法运算

gecimao 发表于 2019-07-09 17:23 | 查看: | 回复:

  2.2定点加法、减法运算 一、补码的加减法运算 1、加法 任意两个数的补码之和,等于该两 数和的补码。 分四种情况来证明,见课本26页两个数不管正负,均用补码表示, 符号位应当做数值参加运算,符号位相 加所产生的进位要丢掉,结果为补码。 定点运算器——定点加减法 X=0.1011Y=-0.0101,求 10.丢掉 [X]补+[Y]补=0.0110X+Y=0.0110 定点运算器——定点加减法 X=-11001,Y=-00011,求X+Y =100100X+Y=-11100 由以上两例看到,补码加法的特点: 一是符号位要作为 数的一部分一起参 加运算。 二是要在模2的意 义下相加,即超过 2的进位要丢掉! 定点运算器——定点加减法 补码的减法: [X-Y] (证明见课本28页)(-Y)的补码称为[Y] 的方法是:不管Y的真值为正或为负,都是将[Y] 1.1010[x-y] 10.0111 所以 x-y=+0.0111 定点运算器——定点加减法 练习: X=-0.1011 Y=-0.0110,求X =1.1011X-Y=-0.0101 已知x1=-0.1110,x2=+0.1101求:[x1] 二、溢出及其判别方法:在计算机中,由于机器码的尾数通 常是给定的(如16位字长,32位字长), 因此,在计算机中数的表示范围是有限 的,若两数进行加减运算的结果超出了 给定的取值范围,就称为溢出。一旦出 现溢出,必须及时处理,否则会出现错 1、溢出例1:X=1010 Y=1001 例2:X=-1010Y=-1011 2、溢出原因:1)两个正数太大:产生进位而改变了符号位; 2)两个负数绝对值太大:对应的补码太小,不 能向符号位产生进位,使符号位相加后,向前产 生进位。 1、两异号数相加或两同号数相减是否 会产生溢出? 2、仅当两同号数相加或两异号数相减 时才有可能产生溢出? 问题: 决不会产生溢出 正确 “溢出”检测方法 为了判断“溢出”是否发生,可采用两种检测的方 第一种方法:采用双符号位法,称为“变形补码”或 “模4补码”,可使模2补码所能表示的数的范围扩 大一倍 第二种溢出检测方法:采用“单符号位法”。 当最高有效位产生进位而符号位无进位时, 或当最高 有效位无进位而符号位有进位时,产生溢出。 在定点机中,当运算结果发生溢出时,机器通过逻 辑电路自动检查出溢出故障,并进行中断处理。 1、双符号位法(参与加减运算的数采用变形补 码表示)

  -2Sf1 Sf2 正确(负数)Sf1 表示正确的符号,逻辑表达式为V=S f1 f2,可以用异或门来实现 =00.1100 =00.1000 01.0100正数太大了,向前有进位,而符号位向前 无进位;两个符号位:01,表示溢出 X=-0.1100Y=-0.1000,求X+Y=? =11.0100 =11.1000 10.1100负数绝对值太大了对应的补码小,向前无进位,而符号 位向前有进位; 两个符号位:10,表示溢出 溢出逻辑表达式为:V=S f1 f2(其中S f1 为最高符号位,S f2 为第二符号位,) 定点运算器——定点加减法 采用“单符号位法” 当最高有效位产生进位而符号位无进位时,产生上溢; 当最高有效位无进位而符号位有进位时,产生下溢。 故:溢出逻辑表达式为: 为最高有效位产生的进位。(显然:此逻辑关系可用异或门方便地实现) 单符号位法 CfC0 X=-0.1100Y=-0.1000,求X+Y=? 1100最高有效位向前无进位,而符号位向前有 进位;表示溢出 Cf=1 Co X=-0.100Y=-0.101,求 两负数相加,结果应为负数,但运算结果为正数,表明有溢出发生。数据向前 无进位,符号位向前有进位 采用单符号位的判断方法 练习: X=0.1100 Y=0.1000 求X+Y=?并用2种方法判断是否溢出 =00.1100,[y] 溢出三、基本的加法/减法器 1、一位全加器 FA Ai Bi Ci Ci+1 Si 向高位 进位 本位输出 结果 输入 输出 表2.2一位全加器真值表 两个输出端的逻辑表达式: i+1=(Ai Bi)CiAiBi n个1位的全加器(FA)可级联成一个n位的行波进位加减器。 M为方式控制输入线时,作加法(A+B)运算;当M=1时,作减法(A-B) 运算,在后一种情况下,A-B运算转化成[A] 运算,求补过程由B+1来实现。 2.3.1 在现有的加法和减法器的基础上增加适当的以为线路及控制逻辑可以实现 尾数乘法如下:设x=0.1101,y=0.1011 0.1 乘积的最后是所有部分积之和,有n个数相加,而FA只有两个输入端 所以需要改造 方法一:硬件实现方法(串行的“加法和移位”),硬 结构简单,速度太慢(时间延迟太长).方法二:不带符号位的阵列乘法器 部分积乘数 部分积初始化为0 乘数最低位为0,加上0+0 求补电路原理:算前求补-乘法器-算后求补,见下图 E=1时,则从数最右端往左边扫描,直到第一个1的时候,该位和右边各位保持不变0A=A,左边各数值位 可以用符号作为E的输入 原:1.11110补:1.00010 时间延迟分析:转换n+1位带符号的时间延迟为t=n*2T+5T,其中n*2T为或门延迟时间,5T为最高位 与门和异或门的时延。 不变,左边数值位取反 原码/补码 例20用带求补器原码乘法器(输入/出:为原码) Y=(+15)*(-13) 设最高位为符号位,则输入数据为 [x]原=01111 [y]原=11101 符号位单独 考虑,算前求补级后x=1111,y=1101 算后经求补级输出并加上乘积符号位1,则原码乘积值为 111000011。换算成二进制数线 例21用带求补器补码乘法器(输入/出:为补码) Y=(-15)*(-13) 设最高位为符号位,则输入数据为 [x]补=10001 [y]补=10011 符号位单独运算=0,算前求补级后x=1111,y=1101 算后经求补级输出并加上符号乘积符号位0,则原码乘积值为 011000011。 换算成二进制数线 十进制数验证:xy=(-15)(-13) =+195 2.4 0.1 除数右移1位,减除数0.0 得余数r1-0.0 除数右移1位,减除数0.0 得余数r2-0.0 除数右移1位,不减除数0.0 得余数r3-0.0 除数右移1位,减除数-0.0 得余数r4商0还是商1人可以比较后确定,计算机如何确定? 余数末位补0后,减去除数右移后的值,导致加法 器尾数逐渐增多,最后要求加法器的位数必须位被 除数的两倍 定点原码一位除法实现方案(手工)0.10010/ 0.1011 0.1 X/Y=0.1101余数=0.0111*2 -4 商0还是商1人可以比较后确定,计算机如何确定? 2.4 定点除法运算 2.4.2 当i-1次求商的余数为正时,下一次求商的办法是Ri+1=2Ri-Y 若Ri

本文链接:http://saskatoonflowers.net/dingdianyunsuan/720.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部