最新计算机组成原理第5讲定点除法
- 格式:ppt
- 大小:755.50 KB
- 文档页数:32
摘要:《组成原理》之定点运算器的课件设计与开发利用Flash的强大功能,它集成了文字、图像、声音、动画、视频等多媒体信息,能更好的实现多媒体教学,使学习者加深对所学知识的理解,提高学生学习兴趣和教学效率,同时也能为课件增加生动的效果。
《计算机组成原理》之定点运算器的课件共设计和开发了6个模块:“数据与文字的表示方法”、“定点加减运算”、“定点乘法运算”、“定点除法运算与阵列除法器”、“定点运算器的组成”、“浮点运算方法和浮点运算器”。
关键词:计算机组成原理;定点运算器;Flash;Photoshop 中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)28-6988-02 The Courseware Design and Development for the Fixed-point Arithmetic in the Principle of Computer Organization CHEN Si-si, WANG Feng (College of Physics and Electronic Information Engineering, Wenzhou University, Wenzhou 325035, China) Abstract: The courseware design and development for the fixed-point arithmetic in the Principles of Computer Composition includes six modules: "the representation of data and text", "fixed-point addition and subtraction", "the multiplication of fix-point", "the divide of fix-point and the array of the division", "the composition of the fix-point arithmetic", "the methods of the floating point and the floating arithmetic". Key words: multimedia; constitution principle of computer; fix-point arithmetic; flash 目前,《计算机组成原理》之定点运算器[1-2]的课件仅限于用Powerpoint制作,用这种技术做的PPT很枯燥不能调动学生学习的兴趣,而用Flash制作课件可以生动形象的描述各种教学问题,有效激发学生的学习兴趣,增加教学效果,提高教学效率,具有传统教学所不能比拟的优越性。
一、移位运算二、加法与减法运算三、软件技术的兴起和发展四、除法运算第三节定点数运算定点数运算包括移位、加、减、乘、除几种。
一、移位运算1.移位的意义移位运算在日常生活中常见。
例如15米可写作1500厘米,单就数字而言,1500相当于小数点左移了两位,并在小数点前面添了两个0;同样15也相当于1500相对于小数点右移了两位,并删去了小数点后面的两个0。
可见,当某个十进制数相对于小数点左移n位时,相当于该数乘以10n;右移n位时,相当于该数除以10n。
计算机中小数点的位置是事先约定的,因此,二进制表示的机器数在相对于小数点作n 位左移或右移时,其实质就便该数乘以或除以2n(n=1,2...n)。
移位运算又叫移位操作,对计算机来说,有很大的实用价值,例如,当计算机没有乘(除)运算线路时,可以采用移位和加法相结合,实现乘(除)运算。
计算机中机器数的字长往往是固定的,当机器数左移n位或右移n位时,必然会使其n 位低位或n位高位出现空位。
那么,对空出的空位应该添补0还是1呢?这与机器数采用有符号数还是无符号数有关,对有符号的移位叫算术移位。
2.算术移位规则对于正数,由于[x]原=[x]补=[x]反=真值,故移位后出现的空位均以0添之。
对于负数,由于原码、补码和反码的表示形式不同,故当机器数移位时,对其空位的添补规则也不同。
下表列出了三种不同码制的机器数(整数或小数均可),分别对应正数或负数,移位后的添补规则。
必须注意的是:不论是正数还是负数,移位后其符号位均不变,这是算术移位的重要特点。
不同码制机器数移位后的空位添补规则码制添补代码正数原码、补码、反码0原码0负数补码左移添0右移添1反码 1由上表可得出如下结论:(1)机器数为正时,不论左移或右移,添补代码均为0。
(2)由于负数的原码其数值部分与真值相同,故在移位时只要使符号位不变,其空位均添0。
(3)由于负数的反码其各位除符号位外与负数的原码正好相反,故移位后所添的代码应与原码相反,即全部添1。
计算机组成原理位运算进行除法
在计算机中,位运算进行除法通常会使用移位操作和位掩码操作来实现。
以下是一种基于二进制的除法实现:
1. 将被除数和除数转换为二进制数。
2. 确定最高位为1的位数,即被除数和除数的位数之差。
3. 将除数左移这个位数,一位一位地减去被除数,如果减法结果为负数,则将被除数和结果重新进行减法。
4. 重复上一步,直到结果为0或减法结果为负数时停止。
5. 如果最终结果大于除数,则需要减去除数,得到最终的余数。
例如,假设要计算12除以3的商和余数,转换为二进制后得到1100和0011。
最高位为1的位数为2,因此将除数左移2位,得到1100,减去被除数1100,得到0000,商为3。
由于结果等于除数,因此余数为0。
理原成组河南科技大学计算机定点数的除法运算3.3定点数的乘法运算明德笃行博学日新◆定点原码一位除法1)原码恢复余数法2)原码不恢复余数法◆定点补码一位除法博学日新明德笃行原码一位除法1. 运算法则假设被除数[X]原=X s X 1X 2……X n-1X n ,除数[Y]原=Y s Y 1Y 2…Y n-1Y n 商[Q]原=Q s Q 1Q 2……Q n ,则有[Q]原= (X s ⊕Y s ).(|X|×|Y|)即商的符号位等于两数符号位的异或,商的数值部分等于两数绝对值相除。
博学日新明德笃行原码一位除法0.1 0 1 10.11010.0 1 1 0 10.0 0 1 1 0 10.0 1 0 0 1 0.0 0 0 1 0 10.0 0 0 0 0 0 00.0 0 0 0 0 1 1 1…商Q S =X S ⊕Y S =0⊕0=0 X/Y=0.1101 …被除数 X(R 0) …部分余数R 1 …部分余数R 2…余数R 40 . 1 1 0 1 0 0 0 0 2-1Y,除数右移1位,减 2-2Y,除数右移1位,减 2-4Y,除数右移2位,减 2-3Y,除数右移1位,不减 0.0 0 0 1 0 1 0 0.0 0 0 0 1 1 0 1 …部分余数R 3商符单独处理 心算上商(比较大小)?? ? 余数不动低位补“0”减右移一位的除数上商位置不固定1)被除数(绝对值)减去除数(绝对值);2)判别余数正负:若为正数,上商1;若为负数,上商0,然后恢复余数+[|Y|]补;3)余数和商共同左移一位。
4)重复上述过程(左移n次,上商n+1次)。
说明:1)计算机内的运算过程仍用补码。
2)在原码一位乘中通常有以下约定:●小数定点除法 |x| < |y|,整数定点除法 |x| > |y| (避免商溢出)被除数不等于 0,除数不能为 0解:[|X|]原=00.1001,[|Y|]原= [|Y|]补=00.1011 ,[-|Y|]补=11.01010 0 . 1 0 0 1 + 1 1 . 0 1 0 1 X 减Y 1 1 . 1 1 1 0 + 0 0 . 1 0 1 0 余数R 0<0,商0 0恢复余数 0 0 . 1 0 0 1 ← 0 1 . 0 0 1 0 + 1 1 . 0 1 0 1 0 0 . 0 1 1 1 ←0 0 . 1 1 1 0 + 1 1 . 0 1 0 10 0 . 0 0 1 1 ←0 0 . 0 1 1 0 + 1 1 . 0 1 0 1R 0’商0移入Q ,R 0’左移 减Y余数R 1>0,商1 0.1商1移入Q ,R 1’左移 减Y余数R 2>0,商1商1移入Q ,R 2’左移 0.1 1减Y[-|Y|]补[|Y|]补[-|Y|]补[-|Y|]补[-|Y|]补0 0 . 1 0 1 0 + 1 1 . 1 0 1 10 0 . 0 1 1 0 ←0 0 . 1 1 0 0 + 0 0 . 1 1 0 0 0 0 . 0 0 0 1 0 0 . 0 0 0 1←余数R 3<0,商0 恢复余数R 3’=2R 2商 0 移入Q ,R 3’左移 减Y余数R 4>0,商1 商 1 移入Q ,R 4不左移0.1 1 00.1 1 0 1[-|Y|]补[|Y|]补[|Q|]原=0.1101 余数[R]原=0.0001Qs=XS ⊕YS=0⊕0=0R=2-4×0.0001博学日新明德笃行原码恢复余数法(1)某一次-Y 的差值为负时,要多一次+Y 恢复余数的操作,降低了执行速度。
定点除法运算
定点除法运算是指在计算机中进行除法运算时,使用一定的位数表示小数部分,以达到固定精度的目的。
这种方法可以避免浮点数运算中出现的精度误差,同时也可以提高计算速度和计算精度。
通常,定点除法运算的实现需要考虑以下几个方面:首先是确定小数位数和整数位数的比例,这决定了小数部分的精度和整数部分的范围。
其次是确定运算方法,一般有几种方法可供选择,例如恒定除法、倒数乘法、余数乘法等。
最后是确定结果舍入的方式,可以采用舍入到最接近值、舍入到正无穷或舍入到负无穷等方法。
定点除法运算在很多实际应用中都有广泛的应用,如图像处理、信号处理、音频处理等领域。
因此,了解定点除法运算的基本原理和实现方法对于计算机科学和工程领域的从业者来说都是非常重要的。
- 1 -。
定点运算定点加法、减法在上篇文章中计算机组成原理:数据与文字的表示方法,我们已经介绍了数的补码表示法,负数用补码表示后,就可以和正数一样来处理。
这样,运算器里只需要一个加法器就可以了,不必为了负数的加法运算,再配一个减法器。
定点数的加法、减法,实际上就是补码加法、减法。
补码加法补码加法运算基本公式:∙定点整数:[x+y]补[x+y]补 = [x]补[x]补 + [y]补[y]补(mod 2n+12n+1)∙定点小数:[x+y]补[x+y]补 = [x]补[x]补 + [y]补[y]补(mod 22)简单来说,只需将符号位和数值部分一起参与运算,并且将符号位产生的进位丢掉即可证明:(1)证明依据:补码的定义若定点整数的补码形式为x = x n xn x n−1xn−1x n−2xn−2……x1x1x0x0(x n x n 为符号位),则补码表示的定义是:(2)证明思路:分三种情况。
1. x、y均为正值(x﹥0,y﹥0)2. x、y一正一负(x﹥0,y﹤0 或者x<0,y>0)3. x、y均为负值(x<0,y<0)证明定点小数的补码加法:(定点整数的证明类似,此处不再证明)1、x﹥0,y﹥0[x]补[x]补 + [y]补[y]补 = x+y = [x+y]补[x+y]补(mod 22)2、x﹥0,y﹤0 (x<0,y>0 的证明与此类似)根据定义[x]补[x]补 = x,[y]补[y]补 = 2+y所以[x]补[x]补 + [y]补[y]补 = x+2+y = 2+(x+y)这个地方要考虑进位的问题。
当x+y>0 时,2+(x+y) > 2 ,进位 2 必丢失;故[x]补[x]补 + [y]补[y]补 = x+y = [x+y]补[x+y]补(mod 2)当x+y<0 时,2+(x+y) < 2 ;故[x]补[x]补 + [y]补[y]补 = 2+(x+y)= [x+y]补[x+y]补(mod 2)3、x<0,y<0根据定义[x]补[x]补 = 2+x,[y]补[y]补 = 2+y所以[x]补[x]补 + [y]补[y]补= 2+x+2+y= 2+(2+x+y)= 2+ [x+y]补[x+y]补(mod 2)= [x+y]补[x+y]补注:不懂mod 2 的可以转至上一篇计算机组成原理:数据与文字的表示方法查看补码的推导定点数补码加法举例补码减法补码减法运算基本公式:∙定点整数:[x−y]补[x−y]补 = [x]补[x]补 - [y]补[y]补 = [x]补[x]补 + [−y]补[−y]补(mod 2 n+12n+1)∙定点小数:[x−y]补[x−y]补 = [x]补[x]补 - [y]补[y]补 = [x]补[x]补 + [−y]补[−y]补(mod 2 2)证明:只需要证明[−y]补[−y]补 = - [y]补[y]补已证明[x+y]补[x+y]补 = [x]补[x]补 + [y]补[y]补故[y]补[y]补 =[x]补[x]补 + [y]补[y]补 - [x]补[x]补 = [x+y]补[x+y]补 - [x]补[x]补又[x−y]补[x−y]补 = [x+(−y)]补[x+(−y)]补 = [x]补[x]补 + [−y]补[−y]补故[−y]补[−y]补 = [x−y]补[x−y]补 - [x]补[x]补可得[y]补[y]补 + [−y]补[−y]补= [x+y]补[x+y]补 + [x−y]补[x−y]补 - [x]补[x]补 - [x]补[x]补= [x+y+x−y]补[x+y+x−y]补 - [x]补[x]补 - [x]补[x]补= [x+x]补[x+x]补 - [x]补[x]补 - [x]补[x]补= 0即证。