首页 第二章.数据的表示和运算

第二章.数据的表示和运算

举报
开通vip

第二章.数据的表示和运算null第二章 数据的表示和运算第二章 数据的表示和运算内容(1)内容(1)(一) 数制与编码 1. 进位计数制及其相互转换 2. 真值和机器数 3. BCD码 4. 字符与字符串 5. 校验码 (二) 定点数的表示和运算 1. 定点数的表示 无符号数的表示;有符号数的表示。 2. 定点数的运算 定点数的位移运算;原码定点数的加/减运算;补码定点数的加/减运算;定点数的乘/除运算;溢出概念和判别方法。内容...

第二章.数据的表示和运算
null第二章 数据的 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示和运算第二章 数据的表示和运算内容(1)内容(1)(一) 数制与编码 1. 进位计数制及其相互转换 2. 真值和机器数 3. BCD码 4. 字符与字符串 5. 校验码 (二) 定点数的表示和运算 1. 定点数的表示 无符号数的表示;有符号数的表示。 2. 定点数的运算 定点数的位移运算;原码定点数的加/减运算;补码定点数的加/减运算;定点数的乘/除运算;溢出概念和判别方法。内容(2)内容(2)(三) 浮点数的表示和运算 1. 浮点数的表示 浮点数的表示范围;IEEE754标准 2. 浮点数的加/减运算 (四) 算术逻辑单元ALU 1. 串行加法器和并行加法器 2. 算术逻辑单元ALU的功能和机构(一) 数制与编码(一) 数制与编码 1. 进位计数制及其相互转换 2. 真值和机器数 3. BCD码 4. 字符与字符串 5. 校验码1.进位计数制及其相互转换(1)1.进位计数制及其相互转换(1) 1)进位计数制 进位计数制是指按照进位制的方法表示数,不同的数制均涉及两个基本概念:基数和权。 基数:进位计数制中所拥有数字的个数。 权:每位数字的值等于数字乘以所在位数的相关常数,这个常数就是权。 任意一个R进制数X,设整数部分为n位,小数部分为m位,则X可表示为: X=an-1rn-1 + an-2rn-2 + ┅ + a0r0 + a-1r-1 + a-2r-2 + ┅ + a-mr-m (X)r =  airi1.进位计数制及其相互转换(2)1.进位计数制及其相互转换(2) 2)不同数制间的数据转换 (1)二、八、十六进制数转换成十进制数 利用上面讲到的公式: (N)2=∑Di•2i 、(N)8=∑Di•8i、 (N)16=∑Di•16i、进行计算。1.进位计数制及其相互转换(3)1.进位计数制及其相互转换(3)(2)十进制数转换成二进制数 通常要对一个数的整数部分和小数部分分别进行处理,各自得出结果后再合并。 对整数部分,一般采用除2取余数法,其规则如下: 将十进制数除以2,所得余数(0或1)即为对应二进制数最低位的值。然后对上次所得商除以2,所得余数即为二进制数次低位的值,如此进行下去,直到商等于0为止,最后得的余数是所求二进制数最高位的值。 对小数部分,一般用乘2取整数法,其规则如下: 将十进制数乘以2,所得乘积的整数部分即为对应二进制小数最高位的值,然后对所余数的小数部分部分乘以2,所得乘积的整数部分为次高位的值,如此进行下去,直到乘积的小数部分为0,或结果已满足所需精度要求为止。1.进位计数制及其相互转换(3)1.进位计数制及其相互转换(3)(3)二进制数、八进制数和十六进制数之间的转换 八进制数和十六进制数是从二进制数演变而来的: 由3位二进制数组成1位八进制数; 由4位二进制数组成1位十六进制数。 对于一个兼有整数和小数部分的数以小数点为界,小数点前后的数分别分组进行处理,不足的位数用0补足。 对整数部分将0补在数的左侧,对小数部分将0补在数的右侧。这样数值不会发生差错。2. 真值和机器数2. 真值和机器数真值: 数据的数值通常以正(+)负(-)号后跟绝对值来表示,称之为“真值”。 机器数: 在计算机中正负号也需要数字化,一般用0表示正号,1表示负号。把符号数字化的数成为机器数。3. BCD码3. BCD码 在计算机中采用4位二进制码对每个十进制数位进行编码。4位二进制码有16种不同的组合,从中选出10种来表示十进制数位的0~9,用0000,0001,…,1001分别表示0,1,…,9,每个数位内部满足二进制规则,而数位之间满足十进制规则,故称这种编码为“以二进制编码的十进制(binary coded decima1,简称BCD)码”。 在计算机内部实现BCD码算术运算,要对运算结果进行修正,对加法运算的修正规则是: 如果两个一位BCD码相加之和小于或等于(1001)2,即(9)10,不需要修正; 如相加之和大于或等于(1010)2,或者产生进位,要进行加6修正,如果有进位,要向高位进位。4. 字符与字符串4. 字符与字符串 在计算机中要对字符进行识别和处理,必须通过编码的方法,按照一定的规则将字符用一组二进制数编码表示。字符的编码方式有多种,常见的编码有ASCII码、EBCDIC码等。 1)ASCII码 ASCII码用7位二进制表示一个字符,总共128个字符元素,包括10个十进制数字(0-9)、52个英文字母(A-Z和a-z)、34专用符号和32控制符号。 2)EBCDIC码为Extended Binary Coded Decimal Interchange Code的简称,它采用8位来表示一个字符。 3)字符串的存放 向量存储法:字符串存储时,字符串中的所有元素在物理上是邻接的。 串表存储法:字符串的每个字符代码后面设置一个链接字,用于指出下一个字符的存储单元的地址。5. 校验码(1)5. 校验码(1) 数据校验码是一种常用的带有发现某些错误或自动改错能力的数据编码方法。其实现原理,是加进一些冗余码,使合法数据编码出现某些错误时,就成为非法编码。 这样,可以通过检测编码的合法性来达到发现错误的目的。合理地安排非法编码数量和编码规则,可以提高发现错误的能力,或达到自动改正错误的目的。 码距: 码距根据任意两个合法码之间至少有几个二进制位不相同而确定的,仅有一位不同,称其码距为1。5. 校验码(2)5. 校验码(2)1)奇偶校验码 它的实现原理,是使码距由1增加到2。若编码中有1位二进制数出错了,即由1变成0,或者由0变成1。这样出错的编码就成为非法编码,就可以知道出现了错误。在原有的编码之上再增加一位校验位,原编码n位,形成新的编码为n+1 位。增加的方法有2种: 奇校验:增加位的0或1要保证整个编码中1的个数为奇数个。 偶校验:增加位的0或1要保证整个编码中1的个数为偶数个。 5. 校验码(3)5. 校验码(3)2)海明校验码 它的实现原理,是在数据中加入几个校验位,并把数据的每一个二进制位分配在几个奇偶校验组中。当某一位出错就会引起有关的几个校验组的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为自动纠错提供了依据。 假设校验位的个数为r,则它能表示2r个信息,用其中的一个信息指出“没有错误”,其余2r-1个信息指出错误发生在哪一位。然而错误也可能发生在校验位,因此只有k=2r-1-r个信息能用于纠正被传送数据的位数,也就是说要满足关系: 2r>=k+r+1 以上是传统海明码,可检测和纠正一位错。 扩展海明码: 增加一位总校验位,校验位的个数为r时,则能表示2r-1个信息,因此,要满足关系: 2r-1>=k+r5. 校验码(4)5. 校验码(4)3)CRC校验码 CRC校验码一般是指k位信息之后拼接r位校验码。关键问题是如何从k位信息方便地得到r位校验码,以如何从位k+r信息码判断是否出错。 将带编码的k位有效信息位组表达为多项式: M(x)=Ck-1xk-1+ Ck-2xk-2 + ┅ + Cixi + C1x + C0 式Ci中为0或1. 若将信息位左移r位,则可表示为多项式M(x).xr。这样就可以空出r位,以便拼接r位校验位。 CRC码是用多项式M(x).xr除以生成多项式G(x)所得的余数作为校验码的。为了得到r位余数,G(x)必须是r+1位。5. 校验码(5)5. 校验码(5) 设所得的余数表达式为R(x),商为Q(x)。将余数拼接在信息位组左移r位空出的r位上,就构成了CRC码,这个码的可用多项式表达为: M(x)·xr+R(x)=[Q(x)·G(x)+R(x)]+R(x) =[Q(x)·G(x)]+[R(x)+R(x)] =Q(x)·G(x) 因此,所得CRC码可被G(x)表示的数码除尽。 将收到的CRC码用约定的生成多项式G(x)去除,如果无错,余数应为0,有某一位出错,余数不为0. (二) 定点数的表示和运算(二) 定点数的表示和运算1. 定点数的表示 (1)无符号数的表示; (2)有符号数的表示。 2. 定点数的运算 (1)定点数的位移运算; (2)原码定点数的加/减运算; (3)补码定点数的加/减运算; (4)定点数的乘/除运算; (5)溢出概念和判别方法。1. 定点数的表示(1)1. 定点数的表示(1)1)无符号数的表示 无符号数就是指正整数,机器字长的全部位数均用来表示数值的大小,相当于数的绝对值。 对于字长为n+1位的无符号数的表示范围为: 0-2n+1-1 2)带符号数的表示 带符号数是指在计算机中将数的符号数码化。在计算机中,一般规定二进制的最高位为符号位,最高位为“”表示该数为正,为“”表示该数为负。这种在机器中使用符号位也被数码化的数称为机器数。 根据符号位和数值位的编码方法不同,机器数分为原码、补码和反码。2)带符号数的表示(1)2)带符号数的表示(1)(1)原码表示法 机器数的最高位为符号位,0表示正数,1表示负数,数值跟随其后,并以绝对值形式给出。这是与真值最接近的一种表示形式。 原码的定义: [X]原= X 0≤X<1 1-X = 1 +|X| -1<X≤02)带符号数的表示(2)2)带符号数的表示(2)(2)补码表示法 机器数的最高位为符号位,0表示正数,1表示负数,其定义: [X]补= X 0≤X<1 2+X=2-|X| -1≤X<0 (3)反码表示法 机器数的最高位为符号,0表示正数,1表示负数,其定义: [X]反= X 0≤X<1 2-2-n+X -1<X≤02)带符号数的表示(2)2)带符号数的表示(2)(2)补码表示法 机器数的最高位为符号位,0表示正数,1表示负数,其定义: [X]补= X 0≤X<1 2+X=2-|X| -1≤X<0 (3)反码表示法 机器数的最高位为符号,0表示正数,1表示负数,其定义: [X]反= X 0≤X<1 2-2-n+X -1<X≤02. 定点数的运算2. 定点数的运算1)定点数的位移运算 左移,绝对值扩大;右移,绝对值缩小。 算术移位规则 符号位不变 算术移位和逻辑移位的的区别: 算术移位:带符号数移位; 逻辑移位:无符号数移位;2)原码定点数的加/减运算 2)原码定点数的加/减运算 对原码表示的两个操作数进行加减运算时,计算机的实际操作是加还是减,不仅取决指令中的操作码,还取决于两个操作数的符号。而且运算结果的符号判断也较复杂。 例如,加法指令指示做(+A)+(-B)由于一操作数为负,实际操作是做减法(+A)-(+B),结果符号与绝对值大的符号相同。同理,在减法指令中指示做(+A)-(-B)实际操作做加法(+A)+(+B),结果与被减数符号相同。由于原码加减法比较繁琐,相应地需要由复杂的硬件逻辑才能实现,因此在计算机中很少被采用。3)补码定点数的加/减运算3)补码定点数的加/减运算(1) 加法 整数 [A]补 + [B]补= [A+B]补(mod 2n+1) 小数 [A]补 + [B]补= [A+B]补(mod 2) (2) 减法 整数 [A]补 - [B]补= [A+(-B)]补=[A]补 + [-B]补(mod 2n+1) 小数 [A]补 - [B]补= [A+(-B)]补=[A]补 + [-B]补(mod 2) 无需符号判定,连同符号位一起相加,符号位产生的进位自然丢掉4)定点数的乘/除运算(1)4)定点数的乘/除运算(1)1)一位乘法 <1>原码定点一位乘法 两个原码数相乘,其乘积的符号为相乘两数的异或值,数值两数绝对值之积。 设 [X]原=X0 X1 X2 …Xn [Y]原=Y0 Y1 Y2 …Yn [X·Y]原=[X]原·[Y]原 = (X0⊕Y0)∣(X1 X2 …Xn)·(Y1 Y2 …Yn) 符号∣表示把符号位和数值邻接起来。 4)定点数的乘/除运算(2)4)定点数的乘/除运算(2)<2>定点补码一位乘法 有的机器为方便加减法运算,数据以补码形式存放。乘法直接用补码进行,以减少转换次数。具体规则如下: [X·Y]补=[X]补(-Y0 + 0. Y1 Y2… Yn )4)定点数的乘/除运算(3)4)定点数的乘/除运算(3)<2>布斯法 “布斯公式”: 在乘数Yn后添加Yn+1=0。按照Yn+1 ,Yn相邻两位的三种情况,其运算规则如下: (1) Yn+1 ,Yn =0( Yn+1 Yn =00或11), 部分积加0,右移1位; (2) Yn+1 ,Yn =1( Yn+1 Yn =10), 部分积加[X]补,右移1位; (3) Yn+1 ,Yn =-1( Yn+1 Yn =01) , 部分积加[-X]补,右移1位 最后一步不移位。4)定点数的乘/除运算(4)4)定点数的乘/除运算(4)2)两位乘法 <1>原码两位乘法 实际操作用Yi-1、Yi、C三位来控制,运算规则如下:4)定点数的乘/除运算(5)4)定点数的乘/除运算(5)<2>补码两位乘法 根据前述的布斯算法,将两步合并成一步,即可推导出补码两位乘的公式。4)定点数的乘/除运算(6)4)定点数的乘/除运算(6)求部分积的次数和右移操作的控制问题。 当乘数由1位符号位和以n(奇数)位数据位组成时,求部分积的次数为(1+n)/2,而且最后一次的右移操作只右移一位。 若数值位本身为偶数n,可采用下述两种方法之一: (1)可在乘数的最后一位补一个0,乘数的数据位就成为奇数,而且其值不变,求部分积的次数为1+(n+l)/2,即n/2+1,最后一次右移操作也只右移一位。 (2)乘数增加一位符号位,使总位数仍为偶数,此时求部分积的次数为n/2+1,而且最后一次不再执行右移操作。4)定点数的乘/除运算(7)4)定点数的乘/除运算(7)<1>定点原码一位除法 1>恢复余数法 被除数(余数)减去除数,如果为0或者为正值时,上商为1,不恢复余数;如果结果为负,上商为0,再将除数加到余数中,恢复余数。余数左移1位。 2>加减交替法 当余数为正时,商上1,求下一位商的 办法 鲁班奖评选办法下载鲁班奖评选办法下载鲁班奖评选办法下载企业年金办法下载企业年金办法下载 ,余数左移一位,再减去除数;当余数为负时,商上0,求下一位商的办法,余数左移一位,再加上除数。5)溢出概念和判别方法5)溢出概念和判别方法 当运算结果超出机器数所能表示的范围时,称为溢出。显然,两个异号数相加或两个同号数相减,其结果是不会溢出的。仅当两个同号数相加或者两个异号数相减时,才有可能发溢出的情况,一旦溢出,运算结果就不正确了,因此必须将溢出的情况检查出来。判别方法有三种: <1>当符号相同的两数相加时,如果结果的符号与加数(或被加数)不相同,则为溢出。 <2>当任意符号两数相加时,如果C=Cf,运算结果正确,其中C为数值最高位的进位,Cf为符号位的进位。如果C≠Cf ,则为溢出,所以溢出条件=C⊕Cf 。 <3>采用双符号fs2fs1。正数的双符号位为00,负数的双符号位为11。符号位参与运算,当结果的两个符号位甲和乙不相同时,为溢出。所以溢出条件= fs2⊕fs1 ,或者溢出条件= fs2fs1 + fs2fs1(三) 浮点数的表示和运算(三) 浮点数的表示和运算1. 浮点数的表示 (1)浮点数的表示范围; (2)IEEE754标准 2. 浮点数的加/减运算1. 浮点数的表示(1)1. 浮点数的表示(1)1)浮点数的表示范围; 浮点数是指小数点位置可浮动的数据,通常以下式表示: N=M·RE 其中,N为浮点数,M为尾数,E为阶码,R称为“阶的基数(底)”,而且R为一常数,一般为2、8或16。在一台计算机中,所有数据的R都是相同的,于是不需要在每个数据中表示出来。因此,浮点数的机内表示一般采用以下形式:1位 n+1位 m位 1. 浮点数的表示(2)1. 浮点数的表示(2)其中: Ms是尾数的符号位,设置在最高位上。 E为阶码,有n+1位,一般为整数,其中有一位符号位,设置在E的最高位上,用来表正阶或负阶。 M为尾数,有m位,由Ms和M组成一个定点小数。Ms=0,表示正号,Ms=1,表示负。为了保证数据精度属数通常用规格化形式表示:当R=2,且尾数值不为0时,其绝对值大于或等于(0.5)10。对非规格化浮点数,通过将尾数左移或右移,并修改阶码值使之满足规格化要求。1. 浮点数的表示(3)1. 浮点数的表示(3)2)IEEE754标准 根据IEEE 754国际标准,常用的浮点数有两种 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 : (1)单精度浮点数(32位),阶码8位,尾数24位(内含1位符号位)。 (2)双精度浮点数(64位),阶码11位,尾数53位(内含1位符号位)。 单精度格式32位,阶码为8位,尾数为23位。另有一位符号位S,处在最高位。由于IEEE754标准约定在小数点左部有一位隐含位,从而实际有效位数为24位。这样使得尾数的有效值变为1.M 。 例如,最小为x1.0…0,,最大为x1.1…1。规格化表示。故小数点左边的位横为1,可省去。 阶码部分采用移码表示,移码值127,1到254经移码为-126到+127。 1. 浮点数的表示(4)1. 浮点数的表示(4)0 有了精确的表示,无穷大也明确表示。对于绝对值较小的数,可以采用非规格化数表示,减少下溢精度损失。非规格化数的隐含位是0,不是1。2. 浮点数的加/减运算(1)2. 浮点数的加/减运算(1)加减法执行下述五步完成运算: 1)“对阶”操作 比较两浮点数阶码的大小,求出其差ΔE,保留其大值E,E=max(Ex, Ey)。当ΔE≠0时,将阶码小的尾数右移ΔE位,并将其阶码加上ΔE,使两数的阶码值相等。 2)尾数加减运算 执行对阶之后,两尾数进行加减操作。 3)规格化操作 规格化的目的是使得尾数部分的绝对值尽可能以最大值的形式出现。2. 浮点数的加/减运算(2)2. 浮点数的加/减运算(2)4)舍入 在执行右规或者对阶时,尾数的低位会被移掉,使数值的精度受到影响,常用“0”舍“1”入法。当移掉的部分最高位为1时,在尾数的末尾加1,如果加1后又使得尾数溢出,则要再进行一次右规。 5)检查阶码是否溢出 阶码溢出表示浮点数溢出。在规格化和舍入时都可能发生溢出,若阶码正常,加/减运算正常结束。若阶码下溢,则设置机器运算结果为机器零,若上溢,则设置溢出标志。2. 浮点数的加/减运算(2)2. 浮点数的加/减运算(2)4)舍入 在执行右规或者对阶时,尾数的低位会被移掉,使数值的精度受到影响,常用“0”舍“1”入法。当移掉的部分最高位为1时,在尾数的末尾加1,如果加1后又使得尾数溢出,则要再进行一次右规。 5)检查阶码是否溢出 阶码溢出表示浮点数溢出。在规格化和舍入时都可能发生溢出,若阶码正常,加/减运算正常结束。若阶码下溢,则设置机器运算结果为机器零,若上溢,则设置溢出标志。(四) 算术逻辑单元ALU(四) 算术逻辑单元ALU1. 串行加法器和并行加法器 2. 算术逻辑单元ALU的功能和机构1. 串行加法器和并行加法器(1)1. 串行加法器和并行加法器(1)1)串行进位加法器 并行加法器可以同时对数据的各位进行相加,一般用n个全加器来实现2个操作数的各位同时向加。其操作数的各位是同时提供的,由于进位是逐位形成,低位运算所产生的进位会影响高位的运算结果。 串行进位(也称波形进位)加法器,逻辑电路比较简单,但是最高位的加法运算,一定要等到所有低位的加法完成之后才能进行,低位的进位要逐步的传递到高位,逐级产生进位,因此运算速度比较慢。1. 串行加法器和并行加法器(2)1. 串行加法器和并行加法器(2) 串行进位加法器1. 串行加法器和并行加法器(3)1. 串行加法器和并行加法器(3)2)并行进位加法器 为了提高运算速度,减少延迟时间,可以采用并行进位法,也叫提前进位或先行进位。 全加器中,输入Ai 、Bi、Ci-1,输出: Si = Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1 Ci = Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1 = Ai Bi + (Ai+Bi)Ci-1 进位产生函数:Gi = Ai Bi 进位传递函数:Pi = Ai+Bi Ci = Gi + Pi Ci-1 C4 = G4 + P4G3 + P4P3G2 + P4P3P2G1 + P4P3P2P1C01. 串行加法器和并行加法器(4)1. 串行加法器和并行加法器(4) 并行进位加法器的运算速度很快,形成最高进位输出的延迟时间很短,但是以增加硬件逻辑线路为代价。对于长字长的加法器,往往将加法器分成若干组,在组内采用并行进位,组间则采用串行进位或并行进位,由此形成多种进位结构。 (1)单级先行进位 单级先行进位方式将n位字长分为若干组,每组内采用并行进位方式,组与组之间册采用串行进位方式。 (2)多级先行进位 多级先行进位在组内和组间都采用先行进位方式。1. 串行加法器和并行加法器(5)1. 串行加法器和并行加法器(5) 16位单级先行进位加法器2. 算术逻辑单元ALU的功能和机构(1)2. 算术逻辑单元ALU的功能和机构(1) ALU部件是运算器中的主要组成部分,又称为多功能函数发生器,主要用于完成各种算术运算和逻辑运算。 ALU的算术运算部件包含加法器、减法器、乘法器、除法器、增量器(+1)、减量器(-1)、BCD码运算器等组件。 ALU的主要工作是根据CPU的指令要求执行各种指定的运算,如加法、减法、乘法、除法、比较、逻辑移位等操作。 通用寄存器组是一组存取速度最快的存储器,用于保存参加运算的操作数和中间结果。访问寄存器无需高速缓存,也不需要运行总线周期,因此指令的执行速度很快。几乎所有的指令都要将寄存器指定为一个操作数,有些指令还要求将操作数存放在专用的寄存器中。 专用寄存器通常用于表示CPU所处于某种系统状态,ALU中有两个重要的状态寄存器:指令指针寄存器IP(即程序计数器PC)和标志寄存器FLAGS。
本文档为【第二章.数据的表示和运算】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_170448
暂无简介~
格式:ppt
大小:384KB
软件:PowerPoint
页数:0
分类:
上传时间:2009-10-06
浏览量:30