欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    数字化信息编码.ppt

    • 资源ID:5984556       资源大小:817KB        全文页数:119页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数字化信息编码.ppt

    第2章 数字化信息编码与数据表示,(时间:6学时),第2章 数字化信息编码与数据表示,本章介绍数字化信息编码的基本概念、常用的信息编码及计算机中数字数据的表示和转换。,第2章 数字化信息编码与数据表示,2.1 数字化信息编码的概念 2.2 常用的信息编码 2.3 计算机中数值数据的表示 2.4 数据校验码,2.1 数字化信息编码的概念,1.编码 所谓编码,就是用少量简单的基本符号,选用一定的组合规则,以表示出大量复杂的信息。2.编码的两大要素 基本符号的种类和这些符号的组合规则是一切编码的两大要素。3.多重编码 当基本符号数量很多时,往往还要采取措施,以便能使用更少量而简单的基本符号来表示那些量大而复杂的基本符号,这就构成了多重编码。汉字编码是多重编码的典型例子。,2.1 数字化信息编码的概念,4.计算机系统中的编码 由于计算机系统中的一切信息只能以二进制数据来表示,因此在计算机系统中,广泛采用的是仅用0和1两个基本符号组成的基2码,或称为二进制码。基2码是进一步对各种基本编码符号进行重编码的媒介。,2.2 常用的信息编码,计算机中可以进行处理的信息类型是比较多的,对不同类型的数据要进行不同的编码。本节重点讲解计算机内常用的信息编码方案,包括中西文字符编码、逻辑型数据的表示、数值型数据的表示与编码、不同进位数据间的转换、二进制数据算术与逻辑运算规则。,2.2 常用的信息编码,2.2.1 字符编码 2.2.2 中文的编码表示 2.2.3 逻辑数据的表示 2.2.4 数值数据的表示与编码,2.2.1 字符编码,字符是计算机系统中使用最多的信息之一。在计算机系统中,要为每个字符指定一个确定的编码,作为识别与使用这些字符的依据。这些编码的值,是用一定位数的基2码的两个基本符号1和0进行重编码给出的。,2.2.1 字符编码,1.ASCII 码 使用最多、最普遍的是ASCII字符编码,即American Standard Code for Information Interchange,如表2-1所示。2.EBCDIC码 EBCDIC码主要用在IBM计算机中。它采用8位码,有256个编码状态,但只选用其中一部分。3.字符串的表示 字符串是指连续的一串字符,通常方式下,它们占用主存中连续的多个字节,每个字节存一个字符。主存中每个字节存的都是相应字符的ASCII编码值。,表2-1 ASCII 码,2.2.2 中文的编码表示,我国是个多民族的国家,共有近60种民族文字,其中用得最广的是汉字,其他还有蒙、藏、朝鲜、僮、苗、哈尼、维吾尔等多种文字。计算机中文处理系统,应尽可能地处理各种中文文字,但其中最关键的技术是很好地解决汉字的编码方案、存储技术和输入/输出方法。,2.2.3 逻辑数据的表示,很容易想到,用计算机中的基2码的两个状态1和0恰好能表示两个逻辑数据。例如,若用1表示真,则0就表示假。注意,这里的1和0没有了数值和大小的概念,只有逻辑上的意义。对逻辑数据只能进行逻辑运算,产生逻辑数据结果,以表达事物内部的逻辑关系。,2.2.4 数值数据的表示与编码,2.2.4 数值数据的表示与编码,3.二进制数表示数值数据 在计算机中最普遍的方法,是用二进制数表示数值数据,包括整数、纯小数和实数(通称浮点数),这有利于减少所用存储单元的数量,便于实现算术运算。为了更有效地、方便地表示负数,对二进制数又可以选用原码、反码、补码、移码等多种编码方案。,2.3 数值数据的表示、转换和运算,本节讲解数制与进位记数法、各种进制的数值数据之间的相互转换、二进制数的运算规则、二进制数在计算机内的表示、十进制数的编码与运算。,2.3 数值数据的表示、转换和运算,2.3.1 数制与进位记数法2.3.2 数据的转换 2.3.3 二进制数的运算规则 2.3.4 二进制数在计算机内的表示 2.3.5 十进制数的编码与运算,2.3.1 数制与进位记数法,1.基 r 数制 在采用进位记数的数字系统中,如果只用r个基本符号(0,1,2,r-1)表示数值,则称其为基r数制,r称为该数制的基。假定数值N用m+k个自左向右排列的代码Di(-Kim-1)表示,即,式中的Di(-Kim-1)为该数制采用的基本符号,可取值0,1,2,r-1,小数点位置隐含在D0与D-1位之间,则Dm-1D1D0为N的整数部分,D-1D-2D-k为N的小数部分。,(2-1),2.3.1 数制与进位记数法,2.位权 若每一个Di的单位值都赋予固定的值Wi,则称Wi为Di位的权,此时的数制称为有权的基r数制。此时N代表的实际值可表示为:,如果该数制的编码还符合“逢r进位”的规则,则每一位的权(简称位权)可表示为:,式中的r是数制的基,i为位序号。式(2-2)又可以写为:,(2-2),(2-3),(2-4),2.3.1 数制与进位记数法,此时该数制被称为r进位数制,简称r进位制。下面是计算机中常用的几种进位数制:二进制:r=2,基本符号 0,1八进制:r=8,基本符号 0,1,2,3,4,5,6,7十六进制:r=16,基本符号 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F十进制:r=10,基本符号 0,1,2,3,4,5,6,7,8,9 如果每一位Di都具有相同的基,则采用同样的基本符号集来表示,则称该数制为固定基数制,这是计算机内普遍采用的方案。,2.3.2 数据的转换,二、八、十六进制数据转换为十进制数据 十进制数值N和用于表示它的多个R进制位间的关系为:,式中,若R=2,表示二进制数,此时,Di可以为1或0;若R=8,表示八进制数,则Di可以为0、1、2、3、4、5、6、7这8个数字中的任何一个;若R=16,表示十六进制数,则Di可以为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F这16个字符中的任何一个。,2.3.2 数据的转换,现在以R=2为例,来说明如何将二进制数转换为十进制数。按下式计算:(1101.0101)2=123+122+021+120+02-1+12-2+02-3+12-4=8+4+1+0.25+0.0625=(13.3125)10 熟练地记清二进制数每位上的位权是有益的。当位序号为012时,其各位上的位权依次为1、2、4、8、16、32、64、128、256、512、1024、2048、4096。,2.3.2 数据的转换,1)十进制数转换为二进制数 十进制数到二进制数的转换,通常要区分数的整数部分和小数部分,分别按除2取余数和乘2取整数两种不同方法来完成。例:将十进制整数245转换为二进制整数,按下列步骤操作。(1)用2去除给出的十进制整数,得到商和余数。记下余数,为转换后的二进制整数的最低位数字。(2)再用2去除所得的商,得到新的商和新的余数。记下余数,为转换后的二进制整数的高一位的数字。(3)重复执行步骤(1),直到商为0结束转换过程。这样,(245)10=(11110101)2。,2.十进制数据转换为二、八、十六进制数据,2.3.2 数据的转换,2.3.2 数据的转换,例:将十进制小数0.37转换成二进制小数。(1)用2去乘小数0.37,得0.74,取出整数部分0,是二进制小数的最高位。(2)用2去乘小数0.74,得1.48,取出整数部分1,是二进制小数的次高位。(3)用2去乘小数0.48,得0.96,取出整数部分0,是二进制小数的次高位后面一位。(4)依此类推。结果有两种情况:可能到某一次后,小数部分全为0;也可能小数部分永远不会为全0。可以根据自己的实际需要取到某位小数。在本例中,取到5位小数。这样,(0.37)10=(0.01011)2。,2.3.2 数据的转换,例:将十进制数6.375转换成二进制数。这里既有整数部分,也有小数部分。因此应分两次进行。可以先转换其整数部分,再转换其小数部分,然后再将两部分结果合起来,就得到了转换后的最终结果。这样,(6.375)10=(110.011)2。2)十进制数转换为八进制数十进制数到八进制数的转换,也要区分数的整数部分和小数部分,分别按除8取余数和乘8取整数两种不同方法来完成。例:将十进制整数1013转换为八进制整数。,2.3.2 数据的转换,(1)用8去除十进制整数1013,得到商126和余数5。记下余数,为转换后的八进制整数的最低位数字。(2)再用8去除所得的商126,得到新的商15和新的余数6。记下余数,为转换后的八进制整数的高一位的数字。(3)再用8去除所得的商15,得到新的商1和新的余数7。记下余数,为转换后的八进制整数的更高一位的数字。(4)再用8去除所得的商1,得到新的商0和新的余数1。记下余数,为转换后的八进制整数的最高一位的数字。这样,(1013)10=(1765)8。,2.3.2 数据的转换,例:将十进制小数0.385转换为八进制小数。(1)用8去乘小数0.385,得3.08,取出整数部分3,是八进制小数的最高位。(2)用8去乘小数0.08,得0.64,取出整数部分0,是八进制小数的次高位。(3)用8去乘小数0.64,得5.12,取出整数部分5,是八进制小数的次高位后面一位。(4)依此类推。结果有两种情况:可能到某一次后,小数部分全为0;也可能小数部分永远不会为全0。可以根据自己的实际需要取到某位小数。在本例中,取到3位小数。这样,(0.385)10=(0.305)8。,2.3.2 数据的转换,3)十进制数转换为十六进制数十进制数到十六进制数的转换,也要区分数的整数部分和小数部分,分别按除16取余数和乘16取整数两种不同方法来完成。例:将十进制整数1013转换为十六进制整数。(1)用16去除给出的十进制整数1013,得到商63和余数5。记下余数,为转换后的十六进制整数的最低位数字。(2)再用16去除所得的商63,得到新的商3和新的余数F(15)。记下余数,为转换后的十六进制整数的高一位的数字。,2.3.2 数据的转换,(3)再用16去除所得的商3,得到新的商0和新的余数3。记下余数,为转换后的十六进制整数的最高一位的数字。这样,(1013)10=(3F5)16。例:将十进制小数0.385转换为十六进制小数。(1)用16去乘小数0.385,得6.16,取出整数部分6,是十六进制小数的最高位。(2)用16去乘小数0.16,得2.56,取出整数部分2,是十六进制小数的次高位。(3)用16去乘小数0.56,得8.96,取出整数部分8,是十六进制小数的次高位后面一位。,2.3.2 数据的转换,(4)依此类推。结果有两种情况:可能到某一次后,小数部分全为0;也可能小数部分永远不会为全0。可以根据自己的实际需要取到某位小数。在本例中,取到3位小数。这样,(0.385)10=(0.628)16。3.二进制数与八进制、十六进制数的关系 由于log28=3,log216=4,可知一位八进制数可以用3位二进制的数重编码来得到,一位十六进制数可以用4位二进制的数重编码得到。,2.3.2 数据的转换,故人们通常认为,在计算机这个领域,八进制数和十六进制数,只是二进制数的一种特定的表示形式;但计算机硬件只识别二进制数。把二进制数转换成八进制数的表示形式,其方法是:从小数点开始,向左向右分别按每3位分成一组;当最高一组不足3位时,在其前补足0,保证为3位;当最低一组不足3位时,在其后补足0,保证为3位。然后分组按八进制数运算,把得到的结果依次排列起来,得到需要的结果。例如:(1101011.11101101)2=(001 101 011.111 011 010)2=(153.732)8,2.3.2 数据的转换,把二进制数转换成十六进制数的表示形式,其方法是:从小数点开始,从左向右分别按每4位分成一组;当最高一组不足4位时,在其前补足0,保证为4位;当最低一组不足4位时,在其后补足0,保证为4位。然后分组按十六进制数运算,把得到的结果依次排列起来,得到需要的结果。例如:(1101011.111011)2=(0110 1011.1110 1100)2=(6B.EC)16 八进制数和十六进制数之间的转换,经过二进制的中间结果是十分方便的。,数制之间的转换总结:(1)十进制数到N进制数的转换 整数部分:除以N取余数(除基取余法)小数部分:乘以N取向整数的进位(乘基取整法)例如:求(62.625)10?,(62.625)10(111110.101)2,(2)N进制数转换为十进制数方法:按权展开相加法(1101.011)2=,123+122+021+120+02-1+12-2+12-3=,8+4+0+1+0.0+0.25+0.125=(13.375)10,(376.65)8=382+781+680+68-1+58-2=(254.828125)10,(1FD.6C)16=1162+15161+13160+616-1+1216-2=(509.421875)10,(3)二进制数与八进制数之间的转换因为23=8,因此3位二进制数对应1位八进制数,而1位八进制数对应3位二进制数。例如:(11010011.1101101)2=(323.664)8(174.536)8=(1111100.10101111)2,(4)二进制数与十六进制数的转换因为24=16,所以4位二进制数对应1位十六进制数,而1位十六进制数对应为4位二进制数。例如:(11010011.1101101)2=(D3.DA)16(17C.5F)16=(101111100.01011111)2,2.3.3 二进制数的运算规则,1.加法规则 0+0=0 0+1=1 1+0=1 1+1=10(当对应位都是1时,相加后本位为0,并向高位产生进位)例如:,2.3.3 二进制数的运算规则,2.减法规则0-0=00-1=1(要向高位借位1次)1-0=11-1=0例如:,2.3.3 二进制数的运算规则,3.乘法规则00=001=010=011=1例如:,2.3.3 二进制数的运算规则,4.除法规则 与十进制除法类似,也由减法、上商等操作逐步完成。例如:,2.3.3 二进制数的运算规则,5.逻辑或运算规则(运算符号为)00=001=110=111=1逻辑运算是在对应的两个二进制位之间进行的,与相邻的高低位值无关。,2.3.3 二进制数的运算规则,6.逻辑与运算规则(运算符号为)00=001=010=011=1,2.3.3 二进制数的运算规则,8.逻辑异或运算规则(运算符为)逻辑与、或、非操作是3种最基本的操作,用它们可以组合出任何逻辑功能。但在某些情况下,独立使用逻辑异或操作更方便些。,7.逻辑非运算规则(运算符为),0 0=00 1=11 0=11 1=0,2.3.4 二进制数在计算机内的表示,数值数据是用于表示数量的大小。讨论数值数据时,经常用到数值范围和数据精度两个概念。数值范围是指一种类型的数据所能表示的最大值;数据精度,通常用实数所能给出的有效数字的位数表示。这两个概念是不一样的。1.定点小数、整数与浮点数 二进制数,主要分成定点小数、整数与浮点数三类来加以讨论。先说明这三类二进制数的一般表示,再详细讨论其具体编码形式。1)定点小数的表示方法 定点小数是指小数点准确固定在数据某个位置上的小数。,2.3.4 二进制数在计算机内的表示,从实用上看,都把小数点固定在最高数据位的左边,但这只是默认,并不占位;小数点前边再设一位符号位,0表示正号,1表示负号。按此规则,任何一个小数都可以被写成 N=NsN-1N-2N-m 这里用m+1个二进制位表示一个小数,最高一位表示符号,那么所能表示的二进制小数之值为:|N|1-2-m,2.3.4 二进制数在计算机内的表示,2)整数的表示方法 整数所表示的数据的最小单位为1,可以认为它是小数点定在数值最低位右边的一种数据。整数又被分为带符号和不带符号的两类。对带符号的整数来说,符号位被安排在最高位,任何一个带符号的整数都可以被写成 N=NsNn-1N2N1N0 对于用n+1位二进制位(包括符号位)表示的带符号的二进制整数,其值的范围为:|N|2n-1,2.3.4 二进制数在计算机内的表示,对不带符号的整数来说,所有的n+1个二进制位均被视为数值,此时数值的范围是 0N2n+1-1 3)浮点数的表示方法 浮点数是指小数点在数据中的位置可以左右移动的数据,它通常被表示成 N=MRE 这里的M被称为浮点数的尾数,R被称为阶的基数,E 被称为阶的阶码。计算机中一般规定R为2、8或16,是一个常数,不需要在浮点数中明确表示出来。因此,要表示浮点数,一是要给出尾数M,通常用定点小数形式表示,它决定了浮点数的表示,2.3.4 二进制数在计算机内的表示,精度,即可以给出的有效数字的位数;二是要给出阶码,通常用整数形式表示,它指出的是小数点在数据中的位置,决定了浮点数的表示范围。浮点数也是有正、负的,因此也要有符号位。在计算机中,浮点数通常被表示成如下格式:,2.3.4 二进制数在计算机内的表示,合理地选择m和n的值是十分重要的,以便在总长度为1+m+n个二进制位表示的浮点数中,既保证有足够大的数值范围,又保证有所要求的数值精度。若不对浮点数的表示做出明确规定,同一个浮点数的表示就不是唯一的。为了提高数据的表示精度,也为了便于浮点数之间的运算与比较,规定计算机内浮点数的尾数部分用纯小数形式给出,而且当尾数的值不为0时,其绝对值应大于或等于0.5,对于不符合这一规定的浮点数,要通过修改阶码并同时左右移尾数的办法使其变成满足这一要求的表示形式,这种表示方式被称为浮点数的规格化表示。,2.3.4 二进制数在计算机内的表示,当一个浮点数的尾数为0,不论其阶码为何值,该浮点数的值都为0。当阶码的值比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成零值,通常称其为机器0,此时浮点数的所有各位(包括阶码位和尾数位)都清为0值。按IEEE标准,常用的浮点数的格式如表2-2所示。,表2-2 浮点数格式的IEEE标准,2.3.4 二进制数在计算机内的表示,2.二进制数值数据的编码方案 二进制数值数据,包括二进制表示的定点小数、整数和浮点数。这里讲的编码方法,主要是考虑如何能方便地表示正数、零和负数,并尽可能地有利于简化对它们实现算术运算用到的规则。很容易想到,数据的符号的正与负,可用一位二进制数的0和1两个状态加以表示。数据的数值用多位二进制数表示。最常用的编码方法有原码表示、补码表示和反码表示三种方法。为了讨论的方便,通常称表示一个数值数据的机内编码为机器数,而把它所代表的实际值称为机器数的真值。,2.3.4 二进制数在计算机内的表示,1)定点小数的编码方案 用定点小数引出数值的三种编码(原码、补码和反码)方法是最方便的。(1)原码表示法。用机器数的最高一位代表符号,以下各位给出数值的绝对值的表示方法。其定义为,例如:X=+0.1011 X原=01011X=-0.1011 X原=11011,2.3.4 二进制数在计算机内的表示,原码具有如下性质:原码表示中,机器数的最高位是符号位,0代表正号,1代表负号,以下各位是数的绝对值,即X原=符号位+|X|,小数位置是默认的,故小数点并不表示出来。原码表示中,零有两种表示形式,即+0原=00000-0原=10000 原码表示方法的优点是,在数的真值和原码表示之间的对应关系很简单,缺点是用原码实现加减运算很不方便。,2.3.4 二进制数在计算机内的表示,(2)补码表示法。用机器数的最高一位代表符号,以下各位给出数值按2取模的结果的表示方法。其定义为,例如:X=+0.1011 X补=01011X=-0.1011 X补=10101按补码的定义,当X=-0.1011时,X补=2+X=10.0000+(-0.1011)=10101。,2.3.4 二进制数在计算机内的表示,补码具有如下性质。在补码表示中,机器数的最高一位是符号位,0代表正号,1代表负号。机器数和它的真值的关系,是X补=2符号位+X。在补码表示中,0有唯一的编码,即+0补=-0补=00000 假定X=+0.0000,Y=-0.0000,依据补码的定义,则有 X补=X=00000 Y补=2+Y=10.0000+0.0000=10.0000=00000,2.3.4 二进制数在计算机内的表示,补码表示的两个数在进行加法运算时,可以把符号位与数位同等处理,只要结果不超出机器能表示的数值范围,运算后的结果按2取模后,得到的新结果,就是本次加法运算的结果,即机器数的符号位与数值位都是正确的补码表示,即 X+Y补=X补+Y补 mod 2 这一结论极为重要。例如:X=+0.1010,Y=-0.0101 则 X补=01010,Y补=11011 求得:X补+Y补=01010+11011=100101,2.3.4 二进制数在计算机内的表示,按2取模后,符号位前边一位上的1不要,则最后结果为00101,其真值为+0.0101。符号位与数值位均正确。又如,X1=X2=-0.1000,则X1补=X2补=11000,那么X1+X2补=X1补+X2补=11000+11000=110000,按2取模后得10000,它的真值为-1。由此看出,用补码表示定点小数时,它能表示-1的值。,2.3.4 二进制数在计算机内的表示,X补与其真值的关系。假定X补=X0X1X2Xn,则有X补=2X0+X,此关系对X为正、为零和为负都是正确的。X为正时,X0应为0,X补=20+X=X;X为负时,X0应为1,X补=21+X=2+X,均与补码的定义吻合。由此又可以得到从X补求X的关系:X=X补-2X0=X0.X1X2Xn-2X0=-X0+0.X1X2Xn当X为正数时,X0=0,真值X=X补;,2.3.4 二进制数在计算机内的表示,当X为负数时,X0=1,真值X=-1+0.X1X2Xn=-(1-0.X1X2Xn)。对补码的数值部分求补,并加上符号即得真值。例如,X补=10110,则X的真值=-(1-0.0110)=-0.1010。补码的算术移位。将X补的符号位与数值位一起右移一次并保持原符号位的值不变,可实现除法功能(除以2),即,2.3.4 二进制数在计算机内的表示,现考虑X为正、负数两种情况。设X=0.0110,右移一位得0.0011,为X除以2的结果。设X=-0.0110,X补=11010,然后按以上公式计算X/2补=11101,再按下式求真值:X/2=-(1-0.1101)=-0.0011,说明得到的确实是除以2的结果。,2.3.4 二进制数在计算机内的表示,为了得到一个数的补码表示,当然可以通过补码的定义求得,但更简单的办法可以这样做:当X0时,X补的符号位用0,数值位取X的各数值位上的值,显然,此时有X补=X原。当X0时,X补的符号位用1,将X的各数值位取反(0变1,1变0),再在最低位加1,以得到X补的各数值位上的值。(3)变形补码。为了判别结果是否溢出,某些机器采用了这种编码方法,又称模4补码的表示方法,其定义为,2.3.4 二进制数在计算机内的表示,也就是常说的双符号位的补码表示。例如:X=+0.1011 X补=001011 X=-0.1011 X补=110101 按模4补码定义,当X=-0.1011时,X补=4+X=100.0000+(-0.1011)=110101。从上式的结果可以看出,模4补码的表示就是在模2补码表示的符号位之前增加与原符号同值的另一个符号位。模4补码具有如下性质:,2.3.4 二进制数在计算机内的表示,绝对值小于1的数或数值-1,补码的两个符号位相同,00表示正号,11表示负号,其数值位与其模2补码相同。当符号位为01或10时,表示数值溢出;为01时,表示两个正数相加之和1的情况,通称数值“上溢”;为10时,表示两个负数相加,其和小于机器所能表示的最小负数,通称数值“下溢”。最前面的一个符号位才是真正的符号位。在模4补码表示中,零有唯一的编码,即+0补=-0补=000000。用模4补码能表示-1,即为110000,与模2补码的情况非常类似。,2.3.4 二进制数在计算机内的表示,(4)反码表示法。用机器数的最高一位代表符号,数值位是对负数值各位取反的表示方法。其定义为,例如:X=+0.1011 X反=01011X=-0.1011 X反=10100正数的反码与其原码、补码相同,负数的反码为补码最低位减1。反码具有以下性质:,2.3.4 二进制数在计算机内的表示,在反码表示中,机器数的最高位为符号位,0代表正号,1代表负号。其机器数和它的真值之间的关系为,用反码进行两数相加时,若最高位有进位,还必须把该进位值加到结果的最低位,才能得到真正的结果,通称“循环进位”。例如,X=+0.1011,Y=-0.0100,则X反=01011,Y反=11011,X+Y反=X反+Y反=01011+11011=100110,最高位有进位,要加到结果的最低位,得00110+00001=00111,即+0.0111,2.3.4 二进制数在计算机内的表示,在反码表示中,零有两个编码,即+0反=00000-0反=111112)整数的编码方案 与定点小数的三种编码方法类似,整数也可以用原码、补码和反码三种不同的编码方法表示。区别主要表现在以下两个方面。(1)定点小数的小数点位置严格地设置在数的符号位与最高数值位之间,因此,数的表示范围和编码的取模值与用多少位二进制表示一个数无关,该位数只影响数值的精度。整数可认为是小数点被设置在最低一位数值位的右边,机器数的最高位仍被用做数的符号位。数值的表示范围,以及整编码的取模值,都与表示一个数所用的二进制位数有关。,2.3.4 二进制数在计算机内的表示,(2)整数三种编码的定义、特性和相互间的变换方法,均与定点小数相应的三种表示方法类似,只是整数的取模值为2k+1或2k+2(对变形补码),这里的k为二进制整数数值位的位数。例如:X=+10101 X原=X补=X反=010101 X=-10101 X原=110101,X补=101011,X反=101010 以上两个数的变形补码分别为0010101和1101011。这里的k均为5。,2.3.4 二进制数在计算机内的表示,3)浮点数常用的编码方法 前面已经说过,在计算机内,浮点数被表示为如下格式:,在多数计算机中,浮点数的阶码部分一般采用移码表示。对由1位符号位和n位数值位组成的二进制形式的阶码,其移码的定义为 X移=2n+X-2nX2n,2.3.4 二进制数在计算机内的表示,这表明,由X补得到X移的方法是变X补的符号为其反码。例如:X=+1011 X补=01011 X移=11011 X=-1011 X补=10101 X移=00101 移码具有如下性质:最高一位为符号位,但其取值与原码和补码都相反,1代表正号,0代表负号。移码用于表示浮点数的阶码,通常只使用整数。对移码一般只执行加减运算,在对两个浮点数进行乘除运算时,是尾数实现乘除运算,阶码执行加减运算。对移码执行加减运算时,需要对得到的结果进行修正,修正量为2n,即对符号位的结果取反后,得到的才是移码形式的结果。,2.3.4 二进制数在计算机内的表示,在移码表示中,0有唯一的编码,即+0移=-0移=10000。而且机器零的形式为000000。即当浮点数的阶码-2n时,不管尾数值大小时,都属于浮点数下溢,被认为其值是0,此时,移码表示的阶码值正好是每一位都为0的形式,与补码0完全一致。这有利于机器中的判0线路。,2.3.5 十进制数的编码与运算,在计算机内只能表示二进制数,但我们更熟悉十进制数和十进制数运算。为了表示1位十进制数,必须使用log210(取整数为4)位二进制数。但4位十进制数可以表示16个状态,只需取出其中的10个状态来表示1位十进制数可能的10个取值就可以了。要达到这个目的,有非常多的可行方案,下面介绍其中最常用的几种。1.十进制有权码 十进制有权码是指表示一个十进制数位的4位基2码的每一位有确定的位权。用得最普遍的是8421码,简称BCD或二-十进制。,2.3.5 十进制数的编码与运算,2.十进制无权码 十进制无权码是指表示一个十进制数位的4位基2码的每一位没有确定的位权。在采用的无权码的一些方案中,用得比较多的是余3码和格雷码,格雷码又称循环码。3.数字串在计算机内的表示与存储1)字符串形式 一个字节存放一个十进制的数位或符号位。在主存中,这样的一个十进制数占用连续的多个字节,故为了指明这样一个数,需要给出该数在主存中的起始地址和位数(串的长度)。从对符号位的表示和对两个邻接的十进制数之间的分界方式来区分,又可进一步把十进制数串分为前分隔数字串和后嵌入数字串两种表示形式。,2.3.5 十进制数的编码与运算,(1)前分隔数字串,是让符号位占用单独一个字节,并把符号位放在数字位之前,用字符“+”表示正号,用字符“-”表示负号,每个数字位占用一个主存字节,存放的是09这10个数字符中相应一个字符的ASCII编码值。例如,+123在主存中存储为2B、31、32、33四个字节;而-45678在主存中则存储为2D、34、35、36、37、38六个字节。,2.3.5 十进制数的编码与运算,(2)后嵌入数字串,是不再为符号位单独分配一个字节,而是把它嵌入到最低一位数字里边。其规则是,把负号变成十六进制的40,并将其与最低数字位的值相加。数字符09的ASCII码分别为十六进制的3039(十进制的4857),因此,一个负数最低位的编码值应为十六进制的7079中的一个。正数的符号不另外附加处理。例如,+123和-123的后嵌入的表示分别为31、32、33和31、32、73。要说明,对前分隔串或后嵌入串,都要给出它的头一个字符在主存中的地址和串内数的长度。长度为0的数字串的值为0。,2.3.5 十进制数的编码与运算,2)压缩的十进制数串形式 一个字节存放两个十进制的数位,它比字符串形式节省存储空间,又便于直接完成十进制数的算术运算,是广泛采用的较为理想的方法。要指明一个压缩的十进制数串,也得给出它在主存中的首地址和数字位个数(不含符号位),又称位长,位长为0的数其值为0。十进制数串表示法的优点是位长可变,许多机器中该长度从031,有的甚至更长。,第2章作业1:P45-P46一、全部二、1(3),2(1),3,4,5(1)(3),6(1)(3),7(1)(2)(4),2.4 数据校验码,数据在计算机系统内形成、存取和传送的过程中可能产生错误。为减少和避免这类错误,一方面是精心设计各种电路,提高计算机硬件本身的可靠性;另一方面是在数据编码上找出路,即采用带有某种特征能力的编码法,通过少量的附加电路,使之能发现某些错误,甚至能确定错误的性质和准确的出错位置,进而实现自动改错的能力。数据校验码就是一种常用的具备这种能力的数据编码方案。,2.4 数据校验码,2.4.1 数据校验码实现原理 2.4.2 奇偶校验码 2.4.3 海明校验码2.4.4 循环冗余校验码(CRC码),2.4.1 数据校验码实现原理,数据校验码的实现原理,是在合法的数据编码之间,加进一些不允许出现的(非法的)编码,使合法数据编码出现某些错误时,就成为非法编码,这样就可以通过检验编码的合法性来达到发现错误的目的。合理地安排非法编码数量和编码规则,就可以提高发现错误的能力,甚至达到自动改正错误的目的。这里要用到一个码距的概念。码距是指任意两个合法码之间至少有几个二进制位不相同。仅有一位不同,称其码距为1。例如用4位二进制表示16种状态,则16种编码都用到了,此时码距为1。就是说,任何一个状态的4位码中的一位或几位出错,就变成了另一个合法码,此时无查错能力。,2.4.1 数据校验码实现原理,若用4个二进制位表示8个状态,就可以只用其中的8种编码,而把另8种编码作为非法编码,此时可使合法码的码距为2。一般来说,合理地增大合法码的码距,就能提高发现错误的能力,但表示一定数量的合法码所使用的二进制位数变多,增加了数据存储的容量,也增加了数据传输的数量。,2.4.2 奇偶校验码,奇偶校验码是一种开销最小,能发现数据代码中一位出错情况的编码,常用于存储器读写检查,或ASCII字符传送过程中的检查。它的实现原理,是使原来合法编码码距由1增加到2。若合法编码中有一个二进制位的值出错了,由1变成0,或由0变成1,这个码都将成为非法编码。实现的具体方法,通常是为一个字节补充一个二进制位,称为校验位,用设置校验位的值为0或1,使字节的8位和该校验位含有1值的个数为奇数或偶数。在使用奇数个1的方案进行校验时,称为奇校验;反之,称为偶校验。,奇偶校验码:,*编码原理:采用1位校验位,使数据位及校验位中“1”的位数为奇数或偶数个,*校验原理:检测校验码中“1”的个数变化,确定是否有错,例,有奇校验/偶校验2种方法,异或与模2加 X Y=X+Y(mod 2)校验位编码奇校验:P=p1=mn+mn-1+m1+1(mod 2)偶校验:P=p1=mn+mn-1+m1(mod 2),2.4.2 奇偶校验码,根据8位的数据位中1值的个数确定校验位的值,是由专设的线路实现的。例如,当要把一个字节的值写进主存时,用此电路形成校验位的值,然后将这9位的代码作为合法数据编码写进主存。当下一次读出这一代码时,再用相应线路检测读出的9位码的合法性。若在主存写或读的过程中,某一个二进制位上出现错误,得到的9位码就变成非法编码,从而发现一定是哪一位上出现了错误。这种方案只能发现一位错或奇数个位错,但不能确定是哪一位错,也不能发现偶数个位错。考虑到一位出错的几率比多位同时出错的几率高得多,该方案还是有很好的实用价值。,1原理海明校验码的实现原理是:在数据位中加入几个校验位,将数据代码的码距均匀地拉大,并把数据的每个二进制位分配在几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错误,还能指出是哪一位出错,为进一步自动纠错提供了依据。2编码规则若海明码的最高位号为m,最低位号为1,即mm-121,则海明码的编码规则是:(1)校验位与数据位之和为m,每个校验位Pi在海明码中被分在位号2i-1的位置上,其余各位为数据位,并按从低向高逐位依次排列的关系分配各数据位。(2)海明码的每一位位码Hi(包括数据位和校验位)由多个校验位校验,其关系是被校验的每一位位号要等于校验它的各校验位的位号之和。,2.4.3 海明校验码,3增添校验位 假设欲检测的有效信息为n位,需增加的校验位为k位,则校验码的长度为n+k位。校验位的状态组合,应当具有指出n+k位中任一位有错或无错的能力,即需要区别出n+k+1种状态。应满足以下关系式:2kn+k+1 这个关系式称为海明不等式,若信息位长度n确定后,由此可得到校验位k的最短长度。确定校验位后,就可以与信息位组成海明校验位。假设数据位是7位二进制编码,据上所述,校验位的位数k为4,故海明码的总位数为11。它们的排列关系可表示为:海明码位号:H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1 海明码:D7 D6 D5 P4 D4 D3 D2 P3 D1 P2 P1 可知:每个校验位由其本身校验;每个数据位由若干校验位校验。,4校验位校验任务的分配根据海明码的编码规则,每一位海明码都有多个校验位校验,且被校验的每一位的位号等于参与校验它的几个校验位的位号之和。占据各权位上的校验位按权组成的8421码,正好等于海明码的位号,即海明码的位号Hi正好等于要校验它的校验位所占权位权值之和。例如:H11P423P221P120这说明了H11位将由 P4、P2、P1进行校验。校验位P1可以校验:H1、H3、H5、H7、H9、H11、H13、H15校验位P2可以校验:H2、H3、H6、H7、H10、H11、H14、H15校验位P3可以校验:H4、H5、H6、H7、H12、H13、H14、H15校验位P4可以校验:H8、H9、H10、H11、H12、H13、H14、H15 根据校验时采用奇校验或是偶校验,可以写出相应的校验方程。,例:设有一个7位信息码位0110001,求它的海明码。解:此例中,信息位n=7,根据海明不等式,可求得校验位最短长度k=4。其海明码先表示如下:海明码位号:H11 H10 H9 H8 H7 H6 H5 H4 H3 H2

    注意事项

    本文(数字化信息编码.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开