计算机的运算方法 (2).ppt
《计算机的运算方法 (2).ppt》由会员分享,可在线阅读,更多相关《计算机的运算方法 (2).ppt(194页珍藏版)》请在三一办公上搜索。
1、第六章 计算机的运算方法与运算器,计 算 机 组 成 原 理,2013年3月16日,6.1.1 非数值数据表示法,字符表示法汉字表示法,1、ASCII码,使用7bit表示128个字符 From 000 0000 to 111 1111 27=128 注意:ASCII中的数字字符和数字本身不相等 几乎所有计算机均支持该代码集 但不是所有语言都能用128个字符表示,计算机利用寄存器存储数据 寄存器中每个位称bit(Binary DigiT)最高有效位(MSB)最低有效位(LSB),专用名词,2、汉字表示法,8 bit数据仅能表示256个字符,常用汉字6000多个,故其无法表示汉字 GB2312国家
2、标准采用16位表示 与ASCII字符的区别,最高有效位MSB=1 内码,外码(输入法),字模码(显示用),GB2312-80国家标准,1981年,GB2312-80国家标准,包括6763个汉字/682个非汉字字符,称为国标码或国际交换码 GB2312字符集的构成:一级常用汉字3755个,按汉语拼音排列 二级常用汉字3008个,按偏旁部首排列 非汉字字符682个,汉字标准,GB2312-1980(GB0)(简体)6763个汉字 GB13000-1993 20902个汉字(Unicode 1.1版本)汉字扩展规范GBK1.0 标准1995(非国家标准)21003个字符(兼容GB2312)GB180
3、30-2000(1/2/4字节编码)27484汉字(向下兼容GB2312 GBK,GB13000),字模码介绍,字模码是用点阵表示的汉字字型代码,是汉字的输出形式。字模点阵的信息量是很大的,所占存储空间也很大。以16*16为例,每个汉字要占用32个字节,因此字模点阵只能用来构成汉字库,而不能用于机内存储。,6.1.2 进制转换,二进制数转八进制 二进制数转十六进制 二进制数转十进制 十进制数转二进制,1、二到八或十六进制转换,二进制转到八进制 从小数点向左右三位一分组(10 011 100.01)2=(234.2)8 010 二进制转十六进制 从小数点向左右四位一分组(1001 1100.01
4、)2=(9C.4)16 0100,说明:整数部分不足位数对转换无影响,小数部分不足位数要补零凑足,则出错。,2、二进制转十进制,从二进制数求其十进制的值,逐位码权累加求和,10010001127026 025 124 023 022 021 120,3、十进制转二进制,整数部分除2取余 小数部分乘2取整,5,2,1,0,0.625*2,1,0.25*2,0,0.5*2,1,0.0,除尽为止 1011,低,高,求得位数满足要求为止,4、进制转换的简单运算方法,17/128的二进制表示方法?大数的转换方法,记住几个常用的2的幂,2532 2664 27128 28256 29512 2101024
5、(1Kilo)2112048 2124096 2138182 21416364 21532728 21665536 2201048576(1Mega)2301073741824(1Giga)2401Tera 更大的单位是多少?2501 Peta 2601 Exa 2701 Zetta 2801 Yotta,6.2数据的表示方法 6.2.1 数据格式,计算机中常用的数据表示格式有两种:(1)定点格式(2)浮点格式,定点格式(小数点位置固定)容许的数值范围有限,但要求的处理硬件比较简单。,浮点格式(小数点位置浮动)容许的数值范围很大,但要求的处理硬件比较复杂。,1.定点数的表示方法,定点表示:约定
6、机器中所有数据的小数点位置是按约定固定不变的,小数点就不再使用记号“.”来表示。定点数据的形式:纯小数或纯整数。,(设:定点数表示为012n 其中:0符号位,0代表正号,1代表负号),小数点的位置约定在符号位x0的后面(不显示),小数点的位置约定在数值位xn的后面(不显示),例:X=+1010110.,纯整数:X=01010110.,正数,符号位取0,Y=-1101001.,纯整数:Y=11101001.,负数,符号位取1,X=+0.11011,Y=-0.10101,符号位取0,纯小数:X=0.11011,符号位取1,纯小数:X=1.10101,纯整数:X=01010110,符号位取0,纯整数
7、:Y=11101001,符号位取1,符号位取0,纯小数:X=0.11011,符号位取1,纯小数:X=1.10101,注意到:无论是整数或是小数,在机器数的表示中,都不出现小数点“.”,只是约定其位置。,2、浮点数的表示方法,例:156.78=15.678101=1.5678102=0.15678103=MRE其中:M为尾数;R为基数;E为阶码(指数)。,二进制数,在定点计算机中,一般约定:尾数|M|1.0,并按此原则确定各数据的浮点表示格式。上例+156.67=0.15678 103(规格化表示法)同理:对于二进制数+1011.1101=+0.10111101 2+4=0.10111101 2
8、+100=MRE,那么,计算机中究竟采用哪种数据形式?,显然存在多种数据形式,可见:一个机器浮点数由阶码E和尾数M及其符号位组成。约定:尾数M用定点小数表示,给出有效数字的位数,M决定 了浮点数的表示精度;阶码E:用整数形式表示,指明小数点在数据中的位置,其决定了浮点数的表示范围。浮点数的一般形式为:,按照 IEEE754 的标准,32位浮点数和64位浮点数的标准格式为:,其中:=浮点数的符号位,0表示正数,1表示负数。=尾数,23位,用纯小数表示。=阶码,8 位,阶符采用隐含方式,即采用移码方式来表示正负指数。,其中:=浮点数的符号位,0表示正数,1表示负数。=尾数,52位,用纯小数表示。=
9、阶码,11 位,阶符采用隐含方式,即采用移码方式来表示正负指数。,几点注释:为了提高数据的表示精度,当尾数的值不为 0 时,其绝对值|M|应0.5,即:尾数绝对值域的最高有效位应为1,否则通过修改阶码同时左右移小数点的办法,使其变成这一表示形式,这称为浮点数的规格化表示。浮点数所表示的范围显然远比定点数大。以下两种情况计算机都把该浮点数看成零值,称为机器零。当浮点数的尾数M为 0;(不论其阶码E为何值)当阶码E的值Emin值时。(不管其尾数M为何值),例子,设机器数字长为 24 位,欲表示3万的十进制数,试问在保证数的最大精度的前提下,除阶符、数符各 取1 位外,阶码、尾数各取几位?,满足 最
10、大精度 可取 m=4,n=18,解:,6.2.2 数的机器码表示,基本思想:把符号位和数字位一起编码来表示一个 实际的数。主要表示方法有:原码、补码、反码、移码等。各种编码表示的数称为机器数或机器码;其对应的真实数值称为该编码对应的真值。,1.原码表示法,若定点小数为x=0.12n,则其原码表示的定义是:式中原是机器数,是真值。例如,+0.1001,则原0.1001-0.1001,则 原1.1001,x 1 x 01-x=1+|x|0 x-1,定点小数,2-n|X|1-2-n,下溢/上溢,最低有效位,最高有效位,对于定点整数 x=12n,则原码的定义是:对于定点整数,其原码形式为:原=012n
11、,注意到:原码机器中“+0”、“-0”有两种形式:对于定点小数:+0原=0.0000-0原=1.0000对于定点整数:+0原=00000.-0原=10000.,2n0 2n2n|02n,定点整数,1|X|2n-1,上溢,最高有效位,最低有效位,2.补码表示法,补码的概念(以钟表对时为例)假设现在的标准时间为4点正;而有一只表已经7点了,为了校准时间,可以采用两种方法:一是将时针退 7-4=3 格;一是将时针向前拨12-3=9格。显然:这两种方法都能对准到4点,由此可以看出,减3和加9是等价的。所以称:当模数Mod=12时,9是(-3)补码。用数学公式表示:-3+9(mod12)“模”表示被丢掉
12、的数值。上式在数学上称为同余式。设某数为x,当Mod=12时,x-3=x+9、x+7=x-5 都是等价的。从这里可以得到一个启示,就是负数用补码表示时,可以把减法转化为加法。,补码的定义:,1、定点小数,例如+0.1011,则补0.1011;-0.1011,则补10+1.0101,正数的补码就是本身,负数的补码需作运算,x 1 x 0 2+x=2-|x|0 x-1,(mod 2),小数:X 1-2-(n-1)X0 x补=2+X=2-|X|0X-1,根据补码定义,求负数的补码时需作一次减法运算,这显然不是补码方法的初衷。后面将介绍反码表示法可以解决负数的求补问题。2、定点整数,例:已知x=+10
13、111,y=-11011,求 x补、y补(n=5)按定义:x补=010111y补=25+1+y=1000000-11011=100101,x 2n x 0 2n+1+x=2n+1-|x|0 x-2n,(mod 2n+1),注:上式机器数的位数为n+1,整数:X 2(n-1)-1 X0 x补=2n+X=2n-|X|0X-2(n-1),完成下列数的真值到补码的转换X1=+01011011 X2=-01011011,X1补=01011011,X2补=10100101,注:0的补码只有一种形式 对于定点小数:0补0补0.0000 对于定点整数:0补0补00000.因此,补码的表示范围相对于原码、反码来
14、讲多一种,定点小数可以表示-1,n+1位定点整数可以表示-2n。,3.反码表示法,二进制数求反:就是二进制的各位数码0变为1,1变为0。即:若 xi=0,则=1。若 xi=1,则=0.对定点小数,反码的定义参见书。,正数的反码就是本身,负数的反码则是符号位为1,数值位求反。,由上式可以得出:x反+|x|=1.1111=10.00-0.001=2-2-n得出:反(22n)0 x-1,比较反码与补码的公式,反(22n)补2可得到:补反2n由此可知一个由反码求补码的重要公式,即:一个负数的补码,可以通过将该数 符号位置1,其余取反,然后在最末位(2-n)上加1 的方法直接获得。,4.移码表示法,在计
15、算机中,移码通常用于表示浮点数的阶码。由于阶码一般取整数,所以移码通常只用于整数的表示。对定点整数,移码的定义是:移2n2n2n(n为移码数值部分的位数),移码表示法,X移=2n-1+X 2n-1-1 X-2n-1,X1=0101 0101X1补=0101 0101X1移=1101 0101X2=-0101 0101X2补=1010 1011X2移=0010 1011,移码在数轴上的表示,定点小数没有移码定义 平行移动 移码为全0时表示真值最小,为-8;移码为全1时,表示真值最大,为+7,数值,15,7,-,8,0,0,编码,例:若阶码数值部分为5位,以表示真值,则 移25 25 25 又例:
16、当正数10101 时,移1,10101 当负数10101 时,移2525101010,01011。注意到:移码中的逗号不是小数点,而是表示左边一位是符号位。显然,移码中符号位0表示的规律与原码、补码、反码相反。移码的表示范围和补码一致,0只有一种表示方式,只是符号位正好相反。,机器码表示法小结:,在数据的四种机器表示法中,正数的原码、反码、补码等于真值,只有负数才分别有不同的表示方法。补码和移码的0只有一种表示方法,因此其表示范围相对于原码和反码多一种,定点小数可表示-1(移码没有小数形式),正数可表示-2n。移码表示法主要用于表示浮点数的阶码,可以直接比较大小。表示范围和补码相同,只有最高位
17、相反。,42,各种编码,+3,-1,0,3,111,+2,-2,1,2,110,+1,-3,2,1,101,0,-4,3,0,100,-1,+3,+3,+3,011,-2,+2,+2,+2,010,-3,+1,+1,+1,001,-4,0,+0,+0,000,移码,补码,反码,原码,Binary,Number Stored,Number Represented,由于补码表示对加减法运算十分方便,因此目前机器中广泛采用补码表示法。在这类机器中数用补码表示,补码存储,补码运算。(也有些机器,数用原码进行存储和传送,运算时改用补码。还有些机器在做加减法时用补码运算,在做乘除法时用原码运算),6.3
18、定 点 运 算,6.3.1 移位运算,1.移位的意义,15 米=1500 厘米,小数点右移 2 位,机器用语,左移 绝对值扩大,右移 绝对值缩小,在计算机中,移位与加减配合,能够实现乘除运算,2.算术移位规则,1,右移 添 1,左移 添 0,0,反 码,补 码,原 码,负数,0,原码、补码、反码,正数,添补代码,码 制,符号位不变,例6.16,设机器数字长为 8 位(含一位符号位),写出A=+26时,三种机器数左、右移一位和两位后的表示形式及对应的真值,并分析结果的正确性。,解:,A=+26,则 A原=A补=A反=0,0011010,+6,0,0000110,+13,0,0001101,+10
19、4,0,1101000,+52,0,0110100,+26,0,0011010,移位前,=+11010,例6.17,设机器数字长为 8 位(含一位符号位),写出A=26时,三种机器数左、右移一位和两位后的表示形式及对应的真值,并分析结果的正确性。,解:,A=26,6,1,0000110,13,1,0001101,104,1,1101000,52,1,0110100,26,1,0011010,移位前,原码,=11010,6,1,1111001,13,1,1110010,104,1,0010111,52,1,1001011,26,1,1100101,移位前,7,1,1111001,13,1,111
20、0011,104,1,0011000,52,1,1001100,26,1,1100110,移位前,补码,反码,3.算术移位的硬件实现,(a)真值为正,(b)负数的原码,(c)负数的补码,(d)负数的反码,出错,影响精度,出错,影响精度,正确,影响精度,正确,正确,4.算术移位和逻辑移位的区别,算术移位,有符号数的移位,逻辑移位,无符号数的移位,逻辑左移,逻辑右移,低位添 0,高位移丢,高位添 0,低位移丢,例如 01010011,逻辑左移,10100110,逻辑右移,01011001,算术左移,算术右移,00100110,11011001(补码),高位 1 移丢,10110010,定点补码加/
21、减法运算,运算方法及实现 补码加减法运算公式 溢出检测 补码加减法逻辑实现 快速加法器,补码加减法的实现,X+Y补=X补+Y补 两数和的补码等于两数补码之和 X Y 补=X补+-Y补=X补-Y补 两数差的补码等于两数补码之差 减法变加法,关键是求-Y补-Y补=Y补补 对 Y补逐位取反,再在最低位加 1,补码加法公式证明,X+Y补=X补+Y补 x0 y0(无需证明)x0 y0(2/3证明相同)x0 y0 只需证明2/4两种情况即可,(2)x0 y0,x补=x y补=2+y x补+y补=x+2+y=2+(x+y)当x+y0时 2+(x+y)2 进位位舍去 x补+y补=2+(x+y)=x+y(mod
22、 2)=x+y补(mod 2),(4)x0 y0,x+y2 2+(2+x+y)mod 2=(2+x+y)=x+y补 mod 2,补码减法公式证明,X-Y补=X补-Y补?X-Y补=X补+-Y补(加法公式)-Y补=-Y补?-Y补+Y补=Y+(-Y)补=0补=0 故-Y补=-Y补成立-Y补=Y补补 X-Y补=X补+-Y补=X补-Y补,补码加法的几种情况,正正得负,正溢出,负负得正,负溢出,正常结果,符号位进位舍去,正常结果,计算机如何识别运算结果是否溢出,单符号数溢出检测1,正正得负 负负得正 结果溢出 设两数符号位为f0 f1 和数符号位fs,单符号数溢出检测2,符号位进位Cf,最高位进位Cn,C
23、f=0,Cn=0,Cf=1,Cn=1,Cf=0,Cn=1,Cf=1,Cn=0,单符号数溢出检测2,溢出信号V对应的真值表,双符号数溢出检测,非正常符号位,溢出,符号位进位舍去,正常结果,正常结果,非正常符号位,溢出,双符号数溢出检测,溢出信号V对应的真值表,单符号补码加/减器电路实现,方式控制M,M0加M=1减,C0,FAn-1,Sn-1,FAn-2,FA1,FA0,Cn1,Cn2,C1,Sn-2,S1,S0,Cn,Xn-1,Yn-1,Xn-2,Yn-2,X1,Y1,X0,Y0,减法的避免减少了逻辑器件 控制信号M如何产生?,符 号 位,4.补码加减法的硬件配置,6.3.3 乘法运算,1.分析
24、笔算乘法,A=0.1101 B=0.1011,AB=0.10001111,0.1 1 0 1,0.1 0 1 1,1 1 0 1,1 1 0 1,0 0 0 0,1 1 0 1,0.1 0 0 0 1 1 1 1,符号位单独处理,乘数的某一位决定是否加被乘数,4个位积一起相加,乘积的位数扩大一倍,乘积的符号心算求得,?,1.人工算法与机器算法的同异性 在定点计算机中,两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。设n位被乘数和乘数用定点小数表示(定点整数也同样适用)被乘数 原f.n110乘数 原f.n110 则乘积:原(ff)
25、(0.n110)(0.n110)式中,f为被乘数符号,f为乘数符号。,然而,人们习惯的算法对机器并不完全适用。原因之一:机器通常只有n位长,两个n位数相乘,乘积可能为2n位。原因之二:只有两个操作数相加的加法器难以胜任将n个位积一次相加起来的运算。早期计算机中为了简化硬件结构,采用串行的1位乘法方案,即多次执行“加法移位”操作来实现。这种方法并不需要很多器件。然而串行方法毕竟太慢。随着大规模集成电路问世以来,出现了各种形式的流水式阵列乘法器,它们属于并行乘法器。,2.笔算乘法改进,A B=A 0.1011,=0.1A+0.00A+0.001A+0.0001A,=0.1A+0.00A+0.001
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机的运算方法 2 计算机 运算 方法
链接地址:https://www.31ppt.com/p-6342589.html