收藏 分享(赏)

第二章数据编码和数据运算1(课件).ppt

上传人:无敌 文档编号:1443737 上传时间:2018-07-18 格式:PPT 页数:49 大小:306.01KB
下载 相关 举报
第二章数据编码和数据运算1(课件).ppt_第1页
第1页 / 共49页
第二章数据编码和数据运算1(课件).ppt_第2页
第2页 / 共49页
第二章数据编码和数据运算1(课件).ppt_第3页
第3页 / 共49页
第二章数据编码和数据运算1(课件).ppt_第4页
第4页 / 共49页
第二章数据编码和数据运算1(课件).ppt_第5页
第5页 / 共49页
点击查看更多>>
资源描述

1、第二章 数据编码和数据运算,2.1数据与文字的编码 数字计算机中采用二进制的数据表示方式,因为二进制数能方便可靠地用数字电路的逻辑电平表示。 在计算机中表示的二进制数据称为机器数。它是一系列位数固定而且数量有限的二进制代码,表示的数值范围也是有限的。计算机中表示的机器数是一系列离散的数据。一个机器数所代表的实际数值称为真值,2.1.1 数制的转换,十进制数采用十个计数符号计数规则逢十进一一个n位的十进制数x0 x1xn-2 xn-1代表的数值为:x0*10n-1 + x1 * 10n-2 + + xn-2 * 101 + xn-1 * 100,二进制数,采用2个计数符号逢2进1一个n位的二进制

2、数x0 x1xn-2 xn-1代表的数值为:x0*2n-1 + x1 * 2n-2 + + xn-2 * 21 + xn-1 * 20,r进制数,采用r个计数符号逢r进1一个n位的r进制数x0 x1xn-2 xn-1代表的数值为:x0*rn-1 + x1 * rn-2 + + xn-2 * r1 + xn-1 * r00 xi r-1 (0in-1)有小数的情形,数制转换,将二进制数转换成八进制数从小数点的位置开始每三位一组分别转换成相应的八进制数的计数符号不足三位时补0将二进制数转换成十六进制数四位一组进行转换例0010101102=1268=5616,数制转换,将八进制数转换成二进制数从小

3、数点的位置开始每一位八进制数分别转换成三位二进制数将八进制数转换成二进制数十进制数转换成二进制数整数部分采用除2取余法小数部分采用乘2取整法x02n-1 + x12n-2 + + xn-221 + xn-120,【例1】 将十进制整数100转换成二进制整数。解:用2连续除100,直至商小于2,算式如下: 运算结果:100=1100100B,【例2】 将十进制小数0.618转换成二进制小数。解:用2连续乘以0.618,小数部分为0或保留4位小数,算式如下: 运算结果:0.6180.1001B。,不同数制之间的转换规则:,二进制数转换成十六进制数采用“四位合一位”法 十六进制数转换成二进制数采用“

4、一位分四位”法 二进制数转换成十进制数按权展开后相加 十六进制数转换成十进制数按权展开后相加 十进制整数转换成二进制整数采用“除以2取余”法十进制整数转换成十六进制整数采用“除以16取余”法十进制小数转换成二进制小数采用“乘2取整”法 十进制小数转换成十六进制小数采用“乘16取整”法,2.1.2 定点数的编码,定点数是指小数点位置固定不变的数据。在计算机中,通常采用两种类型的定点数表示。一种定点数把小数点定在最低位数的右面,这种定点数称为定点整数,因为它实际没有小数。另一种定点数把小数点固定在最高位数的后面,即纯小数表示,称为定点小数,它只保留小数点后面的数据,小数点前面的一位数据固定为零。这

5、种二进制定点数的表示可以直接在计算机中表示,计算机中表示无符号数就直接用这种二进制的表示作为数据的编码,机器数计算机中表示的二进制数据真值一个机器数所代表的实际数值定点数定点整数定点小数,2.1.2 定点数的编码,机器数,无符号数半字、字、双倍字、四倍字有符号数原码、反码、补码、移码1位符号位,无符号数的编码,定点整数数值表示x = x0x1x2xnxi=0,1, 0inx02n + x12n-1 + + xn-121 + xn数值范围0x2n+1-1,无符号数的编码,定点小数数值表示x = x0 . x1x2xn x0=0,xi=0,1, 0in x12-1 + + xn-12-n+1 +

6、xn2-n数值范围0x1-2-n,有符号数的编码,计算机中的数据编码都是有一定的表示范围的,离散的;而不像数学中的数可以是任意大的,连续的。在数据编码中,如果数据值超过了编码所能表示的数值范围,则称为数值溢出。计算机中表示一个带符号数的方法有:原码表示法、反码表示法、补码表示法和移码表示法四种。,1. 原码表示法,特点:简便编码方法(加符号位)例:3原 = 00000011-3原= 10000011,1. 原码表示法,零有两种表示方式例 设x=101010,y= -101010,求x原和y原解:x原=00101010y原=10101010例 设x=0.1010,y= -0.1010,求x原和y

7、原解:x原=0.101010y原=1.101010,2. 补码表示法,特点:便于运算例:3补 = 00000011-3补= 11111101,2s complement coding,2. 补码表示法,方法1正数:直接取其原来的二进制码(加符号位0)负数:对其二进制码按位取反之后再在最低位加1例: 010101补= 00010101 -010101补= 11101010+1 = 11101011方法2正数:直接取其原来的二进制码负数:从二进制码的最低位开始,对遇到的0和第一个1取其原来的二进制编码,从第一个1以后开始直到最高位均取其相反编码。例:101010补= 0101010 -101010

8、补= 1010110,定点小数的补码编码,x= x0.x1xn数值范围:-1 x 1 - 2-n例 设x=0.101010,y=-0.101010, 求x补和y补。解:x补=0.101010y补=1.010110,补码求值的方法,公式法x = -x02n + x12n-1 + + xn-12 + xn例如:10000100的真值为-128+4=-124求补法x补与-x补的关系例: x补=11111100 -x补=00000100 -x=4 x=-4,3. 反码表示法,例:1010反 = 01010 -1010反= 10101,1s complement coding,反码的表示法是用对负值的各

9、位取反的表示方法.对于给定的反玛x反的代码,其数值:,3. 反码表示法,编码方法正数的反码与原码相同负数的反码是将二进制位按位取反数值范围-2n +1 x 2n -1定点小数-1 + 2-n x 1-2-n零有两个编码:0000和1111,4. 移码表示法,编码方法x移 = 2n +x数值范围-2n x 2n - 1符号位:1表示正号,0代表负号0有惟一的编码保持了数据原有的大小顺序定点小数没有移码定义,4. 移码表示法,例 设x=101010,y= -101010,求x移和y移。解:x移=1000000+101010=10101010y移=1000000+(-101010) =1000000

10、0-0101010=01010110,四种编码的例子,数据真值与数据编码,数据的真值中可以把最高位的0省略数据编码中不能忽略任何位置上的0或1数据编码的最高位代表数据的符号数据真值的最高位则不代表符号x表示真值xxx表示编码,2.1.3 浮点数的编码,E的编码:移码或补码 S与M的编码:原码或补码 R进制的含义:多个二进制位构成一组,代表一个R进制位例:0 00111 1100000000 或 00111, 1.1100000000,浮点数的编码,规格化0.12 = 0.120 = 0.0121要求数值中小数点后第一位为非零为了在尾数中表示最多的有效数据位为了数据表示的唯一性机器零全部为0特殊

11、的数据编码,规格化的编码,基数为2的浮点数规格化尾数的绝对值在1/2到1之间基数为R的浮点数规格化尾数的绝对值在1/R到1之间原码数据位的最高位为1补码小数点前后两位互不相同尾数0.1010和1.0101是规格化的尾数0.0101和1.1010是非规格化的,x.1xxxxxx,0.1xxxxxx1.0xxxxxx,规格化的编码,例2-1 对数据12310作规格化浮点数的编码,假定1位符号位,基数为2,阶码5位,采用移码,尾数10位,采用补码。解:12310 = 11110112 = 0.1111011000227 7移=10000+00111 = 101110.1111011000补=0.11

12、11011000123浮=0 10111 1111011000,浮点数的表示范围,浮点数的溢出表现为阶码的溢出浮点数的上溢(overflow)数据大于阶码所能表示的数据浮点数的下溢(underflow)数据小于阶码所能表示的数值时,2.1.4文字的编码,1. 西文字符的编码ASCII码2. 汉字的编码输入码数字编码、拼音码和字形码机内码用于汉字信息存储、交换、检索等操作3. 十进制数的编码,汉字的存放,汉字的表示方法(一级汉字3755个,二级汉字3008个)输入码国标码一级(1655)*94二级(5687)*94图形符号(682个)(0109)*94拼音、五笔汉字内码:汉字信息的存储,交换和检

13、索的机内代码,两个字节组成,每个字节高位都为1(区别于英文字符),汉字字模码:汉字字形点阵汉字库,十进制数的编码,编码的方法字符串形式ASCII码的高位置0压缩的十进制数串形式对每一位十进制数用四个二进制位编码表示BCD码(binary coded decimal)用4位编码中的剩余6个代码表示符号,2.1.5 检错码和纠错码,能够发现某些错误或具有自动纠错能力的数据编码在代码中增加冗余位以使代码具有某种特征分组码卷积码,1.奇偶校验码,奇校验:xk+1 = x1 + x2 + + xk + 1 mod 2偶校验:xk+1 = x1 + x2 + + xk mod 2例:偶校验0000 000

14、000001 000110010 00101,奇偶校验码的原理,码距两个合法代码对应位上编码不同的位数海明距离在编码中引入一定的冗余,增加代码的最小码距,使得编码中出现一个错误时就成为非法代码。,问题,某一个检错码具有以下4个码字,指出各码字之间的码距:0000000000000001111111111000001111111111,如果码距更大.,合法代码,合法代码,非法代码,非法代码,非法代码,非法代码,非法代码,合法代码?,2. 海明码,海明码:(n, k)码长n=2m - 1信息位数k=2m - m - 1校验位数m= n - k最小码距d = 3,(7,4)海明码的例子,c1 = x

15、1 + x2 + x3c2 = x2 + x3 + x4c3 = x1 + x2 + x4将这些信息位和校验位构成码字w,即w = x1,x2,x3,x4,c1,c2,c3=w1,w2,w3,w4,w5,w6,w7校验方程:w1 + w2 + w3 + w5 = 0 w2 + w3 + w4 +w6 = 0w1 + w2 + w4 + w7 = 0,(7,4)海明码的例子,例 用上述定义的海明码对数据1010进行编码。解:根据上述海明码定义,得c1 = x1 + x2 + x3 = 0 (mod 2)c2 = x2 + x3 + x4 = 1 (mod 2)c3 = x1 + x2 + x4

16、= 1 (mod 2)所以编码的结果为1010011。,练习,对于海明码校验方程w1 + w2 + w3 + w5 = 0 w2 + w3 + w4 +w6 = 0w1 + w2 + w4 + w7 = 0假如出现了码字 w1,w2,w3,w4,w5,w6,w7=0,1,0,1,0,1,0问该码字是否合法?如果不合法,是哪一位发生了错误?应该纠正成什么码字?,3. 循环码,定义线性码中若一个n位编码V = vn-1 , vn-2 , , v1, v0是码C的一个码字,那么V向右循环移动一位后的n位编码V1 = v0, vn-1,v2,v1也是码C的一个码字。码字多项式表示V(x) = vn-1

17、xn-1 + + v1x + v0二进制多项式多项式的系数是一位二进制数循环码的特性生成多项式可整除循环码多项式,循环码的纠错原理,编码时使得合法码字多项式包含生成多项式因子在进行校验时看编码是否能整除生成多项式编码不能整除生成多项式说明编码中出现了错误根据不同的余数值可以判断是哪一位出现了错误,编码方法一求余法,例2-18 对四位有效信息(1100)作(7,4)循环冗余编码,选择的生成多项式是G(x) = x3 + x + 1。解:(1) 将待编码的4位有效信息码组表示为多项式M(x):M(x) = x3 + x2(2) 将M(x)提高r=3次,得M(x)xr,其目的是空出r项,以便拼装r项的余数多项式:M(x)x3 = x6 + x5(3) 用r次的生成多项式G(x)对M(x)xr作模2除:(4) 将M(x)xr与余数多项式R(x)相加,即形成CRC循环码多项式:M(x)x3 + R(x) = x6 + x5 + x即编码的结果为1100010。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报