计算机组成与结构第五版.ppt
《计算机组成与结构第五版.ppt》由会员分享,可在线阅读,更多相关《计算机组成与结构第五版.ppt(161页珍藏版)》请在三一办公上搜索。
1、第3章 运算方法和运算部件,早期的计算机是作为计算工具而应用于科学研究和军事领域的,对数据进行快速运算是促进计算机诞生和早期发展的动力。目前计算机的应用范围大大扩展了,但是数值在计算机中是如何表示的,怎样进行运算,如何实现运算仍是最最基本的问题,也是本章要讨论的课题。,第3章 运算方法和运算部件,3.1 数值的表示方法和转换3.2 带符号的二进制数据在计算机中的 表示方法及加减法运算3.3 二进制乘法运算3.4 二进制除法运算3.5 浮点的运算方法3.6 运算部件3.7 数据校验码,3.1 数值的表示方法和转换,3.1.1 数值型数据的表示和转换3.1.2 十进制数的编码与运算,3.1.1 数
2、值型数据的表示和转换,进位计数制进位制:凡是用数字符号排列,按由低位到高位进位计数的方法叫做进位计数,简称进位制。进位制涉及的两个基本要素:基数位权,3.1.1 数值型数据的表示和转换,基数一种进位制允许选用基本数字符号的个数叫做基数。位权每个数字符号所表示的数值等于该数字符号值乘以一个数码所在位有关的常数,这个常数叫做“位权”,简称“权”。位权的大小是以基数为底,数码所在位置的序号为指数的整数次幂。,3.1.1 数值型数据的表示和转换,十进制每位的值等于该位的权与该位数码的乘积。一个十进制可以写成按权展开的多项式和的形式。例如:789.2371028101910021013102,3.1.1
3、 数值型数据的表示和转换,例:写出(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+381+780=128+24+7=159(10D)16=1162+13160=256+13=269,3.1.1 数值型数据的表示和转换,二进制数、八进制数、十六进制数和十进制数之间的关系见表:,3.1.1 数值型数据的表示和转换,不同数制间的数据转换二进制数、八进制数和十六进制数之间的转换二进制数转换成十进制数十进制数转换成二进制数十进制数转换成八进制数,3.1.1 数值型数
4、据的表示和转换,二进制数、八进制数和十六进制数之间的转换二进制的不足之处:在绝大多数情况下比同等数值的十进制数占用更多的位数。二进制转换成八进制时,以小数点为分界线,整数部分从低位到高位,小数部分从高位到低位,每3位二进制为一组,不足三位的,小数部分在低位补0,整数部分在高位补0,然后用1位八进制的数字来表示。二进制与十六进制之间的转换方法类似二进制与八进制之间的转换方法,每4位二进制为一组。八进制数与十六进制数之间的转换,可将二进制数作为中间媒介进行转换。,3.1.1 数值型数据的表示和转换,例:(1 101.010 1)2=(001 101.010 100)2=(15.24)8(1 110
5、1.0101)2=(0001 1101.0101)2=(1D.5)16(15.24)8=(001 101.010 100)2=(1101.0101)2,3.1.1 数值型数据的表示和转换,二进制数转换成十进制数利用数制公式计算。十进制数转换成二进制数整数转换方法除基取余法小数转换方法乘基取整法,3.1.1 数值型数据的表示和转换,整数转换方法除基取余法例:把十进制数205转换成二进制数。换算结果:(205)10(1 1 0 0 1 1 0 1)2,3.1.1 数值型数据的表示和转换,小数转换方法乘基取整法例:把十进制小数0.8125转换成二进制数。换算结果:(0.8125)10(0.1 1 0
6、 1)2,3.1.1 数值型数据的表示和转换,注:并不是所有的十进制小数都能转换成有限位二进制小数并出现乘积的小数部分为0的情况,有时整个换算过程无限进行下去。(例:0.2)此时可以根据精度要求并考虑计算机字长位数取一定长度的位数后四舍五入,这样得到的二进制数是原十进制数的近似值。当一个数既有整数部分又有小数部分时,分别进行转换后再进行拼接。,3.1.1 数值型数据的表示和转换,十进制数转换成八进制数参照十进制数转换成二进制数的方法,将基数2改为8,即可实现转换。,3.1.1 数值型数据的表示和转换,数据符号的表示数据的数值通常以正()负()号后跟绝对值来表示,称之为“真值”。在计算机中正负号
7、也需要数字化,一般用0表示正号,1表示负号。正号有时可省略。,3.1 数值的表示方法和转换,3.1.1 数值型数据的表示和转换3.1.2 十进制数的编码与运算,3.1.2 十进制数的编码与运算,十进制数位的编码与运算:在计算机中采用4位二进制码对每个十进制数位进行编码。有权码无权码数字串在计算机内的表示与存储字符形式压缩的十进制数形式,3.1.2 十进制数的编码与运算,有权码表示一位十进制数的二进制码的每一位有确定的权。一般用8421码,其4个二进制码的权从高到低分别为8、4、2和1。用0000,0001,1001分别表示0,1,9,每个数位内部满足二进制规则,而数位之间满足十进制规则,故称这
8、种编码为“以二进制编码的十进制(binary coded decimal,简称BCD)码”。,3.1.2 十进制数的编码与运算,8421BCD与十进制数的关系(有权码),3.1.2 十进制数的编码与运算,8421码实现加、减运算时的修正规则:4位一组二进制数,两个8421码表示的数相加之和等于或小于1001,即十进制的9时,不需要修正,在各组内,二进制代码相加,仍遵循“逢二进一”的规则。4位一组二进制数,两个8421码相加结果大于1001(即十进制9)时,则应该对该组的4位进行“加6修正”,使它向高一组产生进位。4位一组二进制数,两个8421码相加结果大于或等于10000(即十进制16),而向
9、高一组进位时,则应该对该4位进行“加6修正”。,3.1.2 十进制数的编码与运算,另外几种有权码,如2421,5211,4311码,也是用4位二进制码表示一个十进制数位,但4位二进制码之间不符合二进制规则。这几种有权码有一特点,即任何两个相加之和等于(9)10的二进制码互为反码。,3.1.2 十进制数的编码与运算,3.1.2 十进制数的编码与运算,无权码表示一个十进制数位的二进制码的每一位没有确定的权。用得较多的是余3码(Excess-3 Code)和格雷码(Gray Code),格雷码又称“循环码”。余3码是在8421码基础上,把每个编码都加上0011而形成的,其运算规则是:当两个余3码相加
10、不产生进位时,应从结果中减去0011;产生进位时,应将进位信号送入高位,本位加0011。,3.1.2 十进制数的编码与运算,数字串在计算机内的表示与存储字符形式:一个字节存放一个十进制数位或符号位,存放的是09十个数字和正负号的ASCII编码值。压缩的十进制数形式:一个字节存放两个十进制数位,既节省了存储空间,又便于完成十进制数的算术运算。其值用BCD码或ASCII码的低4位表示。符号位也占半个字节并放在最低数字位之后,其值可从4位二进制码中的6种冗余状态中选用。,第3章 运算方法和运算部件,3.1 数值的表示方法和转换3.2 带符号的二进制数据在计算机中的 表示方法及加减法运算3.3 二进制
11、乘法运算3.4 二进制除法运算3.5 浮点的运算方法3.6 运算部件3.7 数据校验码,3.2 带符号的二进制数据在计算机中的表示方法及加减法运算,机器数是指数在计算机中的表示形式,一般是采用某种编码形式表示带符号的二进制数。真值是指机器数所对应的实际数值。机器数有三种表示方式:原码补码反码,3.2 带符号的二进制数据在计算机中的表示方法及加减法运算,3.2.1 原码、补码、反码及其加减法运算3.2.2 加减法运算的溢出处理3.2.3 定点数和浮点数,3.2.1 原码、补码、反码及其加减法运算,原码表示法规则:机器数的最高一位表示符号,“0”表示正号,“1”表示负号;后面各位用数的绝对值表示。
12、,3.2.1 原码、补码、反码及其加减法运算,0的不唯一性:定点小数+0原=0.00,-0原=1.00整数+0原=000,-0原=100,3.2.1 原码、补码、反码及其加减法运算,原码表示很直观,与真值转换很方便,进行乘除运算比较容易;但是原码进行加减运算时,符号位不能视同数值一样参加运算;原码的运算规则复杂,运算时间长;计算机大量的数据处理工作是加减运算,采用原码表示就很不方便了。,3.2.1 原码、补码、反码及其加减法运算,反码表示法一个负数的原码符号位不动,其余位取相反码就是机器数的另一种表示形式反码表示法。正数的反码与原码相同。,设:x原=x0 x1x2xn当x0 0时,x反=x0
13、x1x2xn当x0 1时,x反=,上节回顾,第2章 计算机的逻辑部件2.3 阵列逻辑电路2.3.2 可编程序逻辑阵列(PLA)2.3.3 可编程序阵列逻辑(PAL)第3章 运算方法和运算部件3.1 数值的表示方法和转换3.1.1 数值型数据的表示和转换3.1.2 十进制数的编码与运算3.2 带符号的二进制数据在计算机中的表示方法及加减法运算3.2.1 原码、补码、反码及其加减法运算,3.2.1 原码、补码、反码及其加减法运算,补码表示法设计补码表示法的目的是:使符号位能和有效数值部分一起参加数值运算,从而简化运算规则,节省运算时间。使减法运算转化成加法运算,从而进一步简化计算机中运算器的线路设
14、计。计算机中补码的概念来源于数学上的“模”和补数。,3.2.1 原码、补码、反码及其加减法运算,一种较简单的由原码求得补码的方法:正数的补码表示与原码一样:x补 x原负数的补码是将原码符号位保持“1”之后,其余各位取相反的码,末位加1便得到补码。即:取原码的反码再加1:x补 x反1例:已知x1010B,求x补x反1101Bx补 x反11110B,3.2.1 原码、补码、反码及其加减法运算,真值0和0的补码表示是一致的,但在原码和反码表示中具有不同的形式。根据互补的概念,一个补码机器数再求一次补就得到机器数的原码了。,3.2.1 原码、补码、反码及其加减法运算,当补码加法运算的结果不超出机器范围
15、时,可得出以下重要结论:用补码表示的两数进行加法运算,其结果仍为补码。X+Y补=X补+Y补。符号位与数值位一样参与运算。,3.2.1 原码、补码、反码及其加减法运算,原码、补码、反码比较:三种编码的最高位都是符号位。当真值为正时,三种编码的符号位都用0表示,数值部分与真值相同。即它们的表示方法是相同的。三种编码方法的区别主要在于对负数的表示方法有所不同。当真值为负时,三种编码的符号位都用1表示,但数值部分的表示各不相同,数值部分存在这样的关系:补码是原码的“求反加1”(整数),或者“求反末位加1”(小数);反码是原码的“每位求反”。它们所能表示的数据范围,基本上是一样的,-2nX2n(整数)或
16、-1X1(小数),只是补码多表示一个数-2n(整数)或-1(小数)。,3.2 带符号的二进制数据在计算机中的表示方法及加减法运算,3.2.1 原码、补码、反码及其加减法运算3.2.2 加减法运算的溢出处理3.2.3 定点数和浮点数,3.2.2 加减法运算的溢出处理,当运算结果超出机器数所能表示的范围时,机器无法表达,称作“溢出”,此时机器将停止运算,屏幕显示溢出警告。溢出判断规则与判断方法:单符号位操作检测方法变形码操作检测方法,3.2.2 加减法运算的溢出处理,单符号位操作检测方法当操作数中的加数与被加数符号相同时,若运算结果的符号与操作数的符号不一致,表示溢出;否则,表示没有溢出。而当加数
17、和被加数符号不同时,相加运算的结果是绝对不会溢出的。,3.2.2 加减法运算的溢出处理,例:x0.1001,y0.1110,用补码运算判断xy是否溢出。解:x补0.1001,y补0.1110两个正数相加的结果符号位为1,表示相加后有溢出。,3.2.2 加减法运算的溢出处理,变形码操作检测方法:每个操作数在运算时都采用两个符号位;正数用00表示,负数用11表示,两个符号位与码值位一起参加运算;若运算结果的两个符号位的代码不一致时表示溢出;两个符号位的代码一致时,表示没有溢出。,3.2.2 加减法运算的溢出处理,正溢出:若两个符号位代码为01,表示正溢出,表明运算结果是大于允许取值范围的正数;负溢
18、出:若两个符号位为10,表示负溢出,表明运算结果是负数,其绝对值大于允许取值范围。注:最高符号位永远表示结果的正确符号。,3.2.2 加减法运算的溢出处理,例:x0.1011,y0.1100,用补码运算判断xy是否溢出。解:x补11.0101,y补11.0100符号位的代码是10,两个符号位的代码不一致,表示运算结果溢出。,3.2.2 加减法运算的溢出处理,例:x0.1011,y0.1101,用补码运算判断xy是否溢出。解:x补00.1011,y补00.1101符号位的代码是01,两个符号位的代码不一致,表示运算结果溢出。,3.2 带符号的二进制数据在计算机中的表示方法及加减法运算,3.2.1
19、 原码、补码、反码及其加减法运算3.2.2 加减法运算的溢出处理3.2.3 定点数和浮点数,3.2.3 定点数和浮点数,定点数:定点数表示法:约定所有机器数的小数点隐含在某一个固定位置上;当约定所有机器数的小数点位置在机器数的最低位之后时,称定点整数。定点整数是纯整数;当约定所以机器数的小数点位置在符号位之后、有效数值部分最高位之前时,称之为定点小数。定点小数是纯小数。,3.2.3 定点数和浮点数,无论定点整数还是定点小数,都可以有原码、反码、补码的形式。定点数表示方法简单直观,不过定点数表示数的范围小,不易选择合适的比例因子,运算过程容易产生溢出。,3.2.3 定点数和浮点数,浮点数:浮点数
20、表示法:小数点位置可以任意浮动。科学计数法:58600D1050.586 586D1030.586 0.0586D1010.586浮点数:1011101B270.1011101 101.1101B230.1011101 0.01011101B210.1011101,3.2.3 定点数和浮点数,计算机多数情况下采用浮点数表示数值,它与科学计算法相似,把任意一个二进制数通过移动小数点位置表示成阶码和尾数两部分。N=MREN为浮点数,M(mantissa)为尾数,E(exponent)为阶码,R(radix)称为“阶的基数(底)”,而且R为一常数,一般为2、8或16。,3.2.3 定点数和浮点数,浮
21、点数的机内表示一般采用以下形式:MS是尾数的符号位,设置在最高位上。E为阶码,有n+1位,一般为整数,其中有一位符号位,设置在E的最高位上,用来表示正阶或负阶。M为尾数,有m位,由MS和M组成一个定点小数。MS=0,表示正号,MS=1,表示负号。尾数的位数决定了数N的精度,尾数的位数越长,能表达的精度越高。,3.2.3 定点数和浮点数,规格化浮点数所谓浮点数的规格化,就是通过移动尾数,使尾数M的最高位数字M11。即M满足1/2|M|1时,这个浮点数就是规格化的数,否则就不是。在字长一定的情况下,规格化的浮点数精度最高。若M11,且尾数不是全0时就要移动尾数直到M11,阶码相应变化,保证N值不变
22、。,3.2.3 定点数和浮点数,计算机中数据的数值范围和精度数值范围是指机器所能表示的一个数的最大值和最小值之间的范围。数据精度是指一个数的有效位数。例如,32位定点小数(补码)的范围为-11-2-31,定点整数(补码)的范围是-231+231-1,数据精度为31位。浮点数由于阶码的存在而扩大了数据的范围。例如,标准的32位单精度数,其数值的可表示范围为-2127(1-2-23)2127,精度为24位。因此用于科学计算的计算机一般都有浮点处理器。,3.2.3 定点数和浮点数,定点数表示法和浮点数表示法的比较浮点数表示的范围比定点数大。因为运算过程中随时对中间结构的浮点数规格化,所以不易丢失有效
23、数字,提高了运算精度。运算规则的复杂性不同溢出情况,第3章 运算方法和运算部件,3.1 数值的表示方法和转换3.2 带符号的二进制数据在计算机中的 表示方法及加减法运算3.3 二进制乘法运算3.4 二进制除法运算3.5 浮点的运算方法3.6 运算部件3.7 数据校验码,3.3 二进制乘法运算,实现乘除法运算大致有三种方案:采用软件实现乘除法运算。使用原有的运算器硬设备,运用基本运算指令编制实现乘、除法运算的子程序。在原有运算器的基础上增加一些硬件设备来实现乘、除法操作。设置专用的乘、除法器,使运算处理设备专用化,目的是加快运算速度。,3.3 二进制乘法运算,3.3.1 定点数一位乘法3.3.2
24、 定点数二位乘法3.3.3 阵列乘法器,3.3.1 定点数一位乘法,定点原码一位乘法乘法规则:乘积的符号由两数符号位按位相加得到,而乘积的数值部分则是两个正数相乘之积。乘积符号的运算法则:同号相乘为正,异号相乘为负。由于被乘数和乘数的符号组合只有四种情况(00,01,10,11),因此积的符号可按“异或”(按位加)运算得到。,3.3.1 定点数一位乘法,假设:被乘数X原=X0X1X2Xn 乘 数Y原=Y0Y1Y2Yn则乘积XY原=X原Y原=(X0Y0)(X1X2Xn)(1Y2Yn)符号表示把符号位和数值邻接起来。,3.3.1 定点数一位乘法,习惯方法:例:求x=0.1101和y=0.1011的
25、乘积xy,3.3.1 定点数一位乘法,运算规则:从乘数的最低位开始,用乘数y的每个二进制位去乘被乘数x,若y的某个二进制位为1,则得位积x;如为0,则得位积0。y的各位分别乘以x的所得的位积,因为位权不同,逐次向左移位,即在空间上按一定位数错开,这样逐位进行下去,直到乘数各位都乘完为止。把经过移位对准的各次位积相加起来即得结果。,3.3.1 定点数一位乘法,缺点:将多个数一次相加,机器难以实现。一般的加法器,只能把两个输入数相加,多个位积的同时输入是无法实现的。乘积位数增长了一倍,即2n,而机器字长只有n位。,3.3.1 定点数一位乘法,改进:把一次求和的操作,变成逐步累加求部分积的操作;将求
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 结构 第五
链接地址:https://www.31ppt.com/p-6023906.html