




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章 运算方法与运算器,运算方法和运算器,本章内容:,2.1 数据与文字的表示方法 2.2 定点加法、减法运算 2.3 定点乘法运算 2.4 定点除法运算 2.5 定点运算器的组成 2.6 浮点运算方法和浮点运算器 本章小结,运算方法和运算器,2.1 数据与文字的表示方法,2.1.1 数据格式 2.1.2 数的机器码表示 2.1.3 字符与字符串的表示方法 2.1.4 汉字的表示方法 2.1.5 校验码,数据与文字的表示方法,无论什么类型的信息,在计算机内部都是以二进制编码形式表示的。 每个数都可以表示成按“权”展开的多项式 十进制 346.79=3102+4101+6100+710-1+910-2 二进制 1011.101=123+022+121+120+12-1+02-2+12-3 八进制 107.63=182+081+780+68-1+38-2 十六进制 1CB.D8=1162+12161+11160+1316-1+816-2 几进制的表示 (1)B,D,H,O的使用 (2)下标法,B: binary(二进制) D: decimal(十进制) O: octal(八进制) H: hexadecimal(十六进制),如: 346.79D, 1011.101B 107.63O, 1CB.D8H,二、八、十六和十进制数的对应关系,二、八、十六和十进制数的对应关系,二进制数的运算规则,加法规则 0+0=0 0+1=1 1+0=1 1+1= 0 减法规则 0-0=0 0-1=1 1-0=1 1-1=0 乘法规则 00=0 01=0 10=0 11=1 除法规则 01=0 11=1,1,1,01111111=10000000-1=27-1 0.1111111=1.0000000-0.0000001 = 1-2-7,2.1.1 数据格式,计算机中常用的数据表示格式有两种: (1)定点格式 (2)浮点格式,定点格式(小数点位置固定)容许的数值范围有限,但要求的处理硬件比较简单。,浮点格式(小数点位置浮动)容许的数值范围很大,但要求的处理硬件比较复杂 。,数据格式,1. 定点数的表示方法,定点表示:约定机器中所有数据的小数点位置是按约定固定不变的,小数点就不再使用记号“.”来表示。定点数据的形式:纯小数或纯整数。,(设:定点数表示为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,纯整数:Y = 11101001.,符号位取1,符号位取0,纯小数:X = 0.11011,符号位取1,纯小数:X = 1.10101,注意到: 无论是整数或是小数,在机器数的表示中,都不出现小数点“.”,只是约定其位置。,定点数例,(012n 各位均为0时最小;各位均为1时最大) 纯小数的表示范围: 0|12n (2.1) 纯整数的表示范围为: 0|2n1 (2.2) 目前计算机中多采用定点纯整数表示,因此将定点数 表示的运算简称为整数运算。,定点数的表示方法,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+100 =MRE,那么,计算机中究竟采用哪种数据形式?,显然存在多种数据形式,浮点数的表示方法,浮点数表示,可见: 一个机器浮点数由阶码E和尾数M及其符号位组成。 约定:尾数M用定点小数表示,给出有效数字的位数,M决定 了浮点数的表示精度; 阶码E:用整数形式表示,指明小数点在数据中的位 置, 其决定了浮点数的表示范围。 早期计算机中浮点数的一般形式为:,浮点数表示,按照 IEEE754 的标准,32位浮点数和64位浮点数的标准格式为:,其中:=浮点数的符号位,0表示正数,1表示负数。 =尾数,23位,用纯小数表示。 =阶码,8 位,阶符采用隐含方式,即采用移码方式来表示正负指数。,其中:=浮点数的符号位,0表示正数,1表示负数。 =尾数,52位,用纯小数表示。 =阶码,11 位,阶符采用隐含方式,即采用移码方式来表示正负指数。,浮点数表示,几点注释: 为了提高数据表示精度,当尾数值不为 0 时,尾数域的最高有效位应为1,否则通过修改阶码同时左右移小数点的办法,使其变成这一表示形式,这称为浮点数的规格化表示。 浮点数所表示的范围显然远比定点数大。 以下两种情况计算机都把该浮点数看成零值,称为机器零。 当浮点数的尾数M为 0;(不论其阶码E为何值) 当阶码E的值Emin值时。(不管其尾数M为何值),IEEE754标准中,一个规格化的32位浮点数x的真值可表示为 x=(-1)S(1.M)2E-127 e=E-127 IEEE754标准中,一个规格化的64位浮点数x的真值可表示为 x=(-1)S(1.M)2E-1023 e=E-1023,因为规格化的浮点数的尾数域最左位(最高有效位)总是1,故这一位经常不予存储,浮点数表示,解: 首先分别将整数和分数部分转换成二进制数: 20.5937510100.10011 然后移动小数点,使其在第1,2位之间 10100.100111.01001001124 小数点被左移了4位, 于是得到:e4 尾符 S0, 阶码 E4127131,尾数 M010010011 最后得到32位浮点数的二进制存储格式为: 0100 0001 1010 0100 1100 0000 0000 0000 (41A4C000)16,此“1”被隐藏,例:将十进制数20.59375转换成位浮点数的二进制格式来存储。,3.十进制数串的表示方法,十进制数串在计算机内主要有两种表示形式: 1.字符串形式 字符串形式:每一个十进制的数位或符号位都用一个字节存放。 如:+12,-38,2.压缩的十进制数串形式 压缩的十进制数串形式:一个字节存放两个十进制的数位。 如:+123、-12,十进制数的表示方法,2.1.2 数的机器码表示,基本思想:把符号位和数字位一起编码来表示一个 实际的数。 主要表示方法有:原码、补码、反码、移码等。 各种编码表示的数称为机器数或机器码;其对应的 真实数值称为该编码对应的真值。,数的机器码表示,对于定点整数 X=Xn-1X1X0,则原码的定义是: 对于定点整数,其原码形式为: 原=nn-110, 注意到:原码机器中 “+0”、“-0” 有两种形式: 对于定点整数:+0原 =00000. -0原 =10000.,数的原码表示, 2n0 2n2n| 02n (2.8),1. 原码表示法,一般情况下,对于定点整数,其真值与原码之间的转换符合下面的规律: x= +12n 原012n . x= -12n 原112n . 对于定点小数,其真值与原码之间的转换符合下面的规律: x=+0.12n 原0.12n x=-0.12n 原1.12n,数的原码表示,原码的表示范围是多少?,则它能表示的数的范围为-(2n-1), 2n-1,假设原=nn-110,正的最大值原码形式为:,负的最小值原码形式为:,0 111,1 111,原码表示法的主要特点是简单、易懂,但它的最大缺 点是:由于数值部分采用绝对值表示,因而使得加减法 运算比较复杂,而加减法运算正是计算机中最常使用的 运算。所以,必须探讨解决方法补码则正是一种解 决方法。,数的原码表示,例如,假设用5位原码来表示,x = +1001 则 x原 = 01001 y = -1001 则y原 = 11001,2. 反码表示法,二进制数求反:就是二进制的各位数码0变为1,1变为0。 即:若 xi =0,则 =1。 若 xi =1,则 =0. 对定点整数,反码表示的定义为:,数的反码表示,正数的反码就是本身,负数的反码则是符号位为1,数值位求反。,例如,假设用5位反码来表示,x = +1001 则 x反 = 01001 y = -1001 则y反 = 10110,注意到:机器中反码“+0”、“-0” 有两种形式: 对于定点整数:+0反 =00000. -0反 =11111.,反码的表示范围是多少?,则它能表示的数的范围为-(2n-1), 2n-1,假设反=nn-110,正的最大值原码形式为:,负的最小值原码形式为:,0 111,1 000,一般情况下,对于定点整数,其真值与反码之间的转换符合下面的规律: x= +12n 反012n . x= -12n 反112n . 对于定点小数,其真值与反码之间的转换符合下面的规律: x=+0.12n 反0.12n x=-0.12n 反1.12n,数的原码表示,3.补码表示法,补码的概念(以钟表对时为例) 假设现在的标准时间为4点正; 而有一只表已经7点了,为 了校准时间,可以采用两种方法:一是将时针退 7-4=3 格;一 是将时针向前拨12-3=9格。 显然:这两种方法都能对准到4点,由此可以看出,减3和加9 是等价的。所以称:当模数Mod=12时,9是(-3)补码。 用数学公式表示: -3+9 (mod12) “模”表示被丢掉的数值。上式在数学上称为同余式。 设某数为x,当Mod=12时,x-3=x+9、x+7=x-5 都是等价的。 从这里可以得到一个启示,就是负数用补码表示时,可以把减 法转化为加法。,数的补码表示,补码的定义:,1、定点整数,正数的补码就是本身,负数的补码需作运算,数的补码表示,注:上式机器数的位数为n+1,根据补码定义,求负数的补码时需作一次减法运算,这显然不是补码方法的初衷。后面将介绍反码表示法可以解决负数的求补问题。,例:已知 x=+10111, y=-11011, 求 x补、y补 (n=5) 按定义:x补 =010111 y补 =25+1+y=1000000-11011=100101,数的补码表示,数的补码表示,注:0的补码只有一种形式 对于定点整数: 0补0补00000 . 因此,补码的表示范围相对于原码、反码来 讲多一种,n+1位定点整数可以表示-2n。,对定点整数,反码表示的定义为: 比较两个公式,可以得出定点整数的补码与反码 的关系,找出利用反码求定点整数补码的方法。 当x为负数时,X补 = X反 + 1,数的补码与反码关系,对一个定点整数来说,一个负数的补码,可以通过将该数 符号位置1,其余取反,然后在最末位加1 的方法直接获得。,数的补码与反码关系,补码的表示范围是多少?,则它能表示的数的范围为-2n, 2n-1,假设补=nn-110,正的最大值原码形式为:,负的最小值原码形式为:,0 111,1 000,正负整数的补码与真值的关系,假设补=nn-110,则其补码表示的真值为:,例3:已知x补 = 010011011 求x=? 例4:已知x补 = 110011011 求x=?,求一个数的补码的另一种有效的转换方法: 对于负数,将原码的符号位不变(或置真值的符号位至1),数值部分由低位向高位转换,对开始遇到的0和第一个1取其原码,以后的各位均取反。 例: y=-0.110100, 求 y补 解:y补=1.001 100,保持不变,逐位取反,y反=1.001011 y补=1.001011+0.000001 =1.001100,数的补码与反码关系,原码、反码、补码表示规律,一个正整数,当用原码、反码、补码表示时,符号位都固定为0,用二进制表示的数位值都相同,即三种表示方法完全一样。 一个负整数,当用原码、反码、补码表示时,符号位都固定为1,用二进制表示的数位值各不相同。 原码符号位为1不变,整数的每一位二进制数位求反得到反码。 反码符号位为1不变,反码数值位最低位加1,得到补码。,4.移码表示法,在计算机中,移码通常用于表示浮点 数的阶码。由于阶码一般取整数,所以 移码通常只用于整数的表示。 对定点整数,移码的定义是: 移2n 2n2n (n为移码数值部分的位数),移码的表示方法,例:若阶码数值部分为5位,以表示真值,则 移25 25 25 又例: 当正数10101 时,移1,10101 当负数10101 时,移2525101010,01011。 注意到: 移码中的逗号不是小数点,而是表示左边一位是符号位。显然,移码中符号位0表示的规律与原码、补码、反码相反。移码的表示范围和补码一致,0只有一种表示方式,只是符号位正好相反。,移码的表示方法,机器码表示法小结:,在数据的四种机器表示法中, 正数的原码、反码、补码等于真值,只有负数才分别有不同的表示方法。补码和移码的0只有一种表示方法,因此其表示范围相对于原码和反码多一种,定点小数可表示-1(移码没有小数形式),整数可表示-2n。 移码表示法主要用于表示浮点数的阶码,可以直接比较大小。表示范围和补码相同,只有最高位相反。,机器码表示法小结,由于补码表示对加减法运算十分方便,因此目前机器中广泛采用补码表示法。在这类机器中数用补码表示,补码存储,补码运算。(也有些机器,数用原码进行存储和传送,运算时改用补码。还有些机器在做加减法时用补码运算,在做乘除法时用原码运算),机器码表示法小结,例3 以定点整数为例,用数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。 解: 原码、反码、补码表示分别示于下图。与原码、反码不同,在补码表示中“0”只有一种形式, 且用补码表示负数时范围可到2n 。,机器码表示法小结,例4将十进制真值(127,1,0,1,127)列表表示成二进制数及原码、反码、补码、移码值。 解: 二进制真值及其诸码值列于下表,其中0在原反中有两种表示。由表中数据可知,补码值与移码值差别仅在于符号位不同。,机器码表示法小结,例5 设机器字长16位,定点表示,尾数15位,数符1位,问: (1)定点原码整数表示时,最大正数是多少?最小负数是多少? (2)定点原码小数表示时,最大正数是多少?最小负数是多少?,解: (1) 定点原码整数表示 最大正数值 (2151)10(32767)10 =0 111111111111111 最小负数值(2151)10(32767)10 =1 111111111111111,机器码表示法小结,(2) 定点原码小数表示 最大正数值(1215)10(0.111.11)2 最小负数值(1215)10(0.11111)2,例6假设由S,E,M三个域组成的一个32位二进制字所表示的非零规格化浮点数,真值表示为: (1)s(1.M)2E128 问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?,解: (1)最大正数,(2)最小正数,机器码表示法小结,(4)最大负数,(3)最小负数,机器码表示法小结,2.1.3 字符与字符串的表示方法,1.字符的表示方法 目前国际上普遍采用的字符系统是七单位的ASCII码(美国国家信息交换标准字符码),它包括10个十进制数码,26个英文字母和一定数量的专用符号,如$,%,等,共128个元素,因此二进制编码需7位,加一位偶校验位,共8位一个字节。 ASCII码规定8个二进制位的最高一位为0,余下的7位可以给出128个编码,表示128个不同的字符。,字符和字符串的表示方法,表2.1 ASCII字符编码表,0-3位,4-6位,2. 字符串,字符串:是指连续的一串字符,通常方式下,它们依次占用主存中 连续的多个字节,每个字节存一个字符。,例 将字符串: IFABTHENREAD(C) 从高位字节到低位字节依次存在主存中。,解: 设:主存单元长度由4个字节组成。每个字节中存放相应字符的ASCII值,文字表达式中的空格“”在主存中也占一个字节的位置。 因而每个字节分别存放十进制的73、70、32、65、62、66、32、84、72、69、78、32、82、69、65、68、40、67、41、32。,字符和字符串的表示方法,主存各字节单元内容,字符和字符串的表示方法,2.1.4 汉字的表示方法,1. 汉字的输入编码 包括:数字码、拼音码和字形码 数字码:常用的是国标区位码,用数字串代表一个汉字输入。区位码是将国家标准局公布的6763个两级汉字分为94个区,每个区分94位,实际上把汉字表示成二维数组,每个汉字在数组中的下标就是区位码。区码和位码各两位十进制数字,因此输入一个汉字需按键四次。 数字编码输入的优点是无重码,且输入码与内部编码的转换比较方便,。缺点是代码难以记忆。 拼音码:拼音码是以汉字拼音为基础的输入方法。使用简单方便,但汉字同音字太多,输入重码率很高,同音字选择影响了输入速度。,汉字的表示方法 (汉字的输入编码),字形码:字形编码是用汉字的形状来进行的编码(例:五笔字型)。把汉字的笔划部件用字母或数字进行编码,按笔划的顺序依次输入,就能表示一个汉字。 为了加快输入速度,在上述方法基础上,发展了词组输入联想输入等多种快速输入方法。但是都利用了键盘进行“手动”输入。理想的输入方式是利用语音或图象识别技术“自动”将拼音或文本输入到计算机内,使计算机能认识汉字,听懂汉语,并将其自动转换为机内代码表示。目前这种理想已经成为现实。,汉字的表示方法 (汉字的输入编码),2 .汉字内码 汉字内码是用于汉字信息的存储、交换、检索等操作的机内代码,一般采用两个字节表示。英文字符的机内代码是七位的ASCII码,当用一个字节表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论