成武一中技术中心2017-10-20数据编码的基本方式了解二进制的基本原理和进制转换方法知道数值、文字、图形图像、音视频等数据在计算机中的编码方式。学习目标3计算机最主要的功能就是处理信息,而信息在计算机中如何表示、存放、传递?这是首先要解决的问题。基本要求是:信息的表示、存放和传递要方便、可靠、易处理。显然,在计算机内部,信息只有经过数字化编码后才能表示、存放和传递。计算机与信息处理4信息的表示及采集编码:用少量的基本符号,根据简单的组合规则,以表示大量复杂的信息。二进制:是一种最简单的编码系统。多媒体信息的表示与采集基于计算机的信息处理信息的组织信息的传输信息的检索数据编码的基本方式5计算机中的信息采用二进制编码来表示。二进制表示数字容易实现(只有0、1)。二进制运算规则简单(逢二进一)。二进制编码在物理上最容易实现;自然界中具有两个固定状态的物理量很多,例如:电流的有无、电压的高低等。计算机为什么选用二进制6数制:人们利用符号来计数的科学方法。进位计数制:按一定进位规则进行计数的方法。基数:是指该进制中允许使用的基本数码的个数。十进制的基数为10,数码为0,1,2,…,9十个。二进制的基数为2,数码为0,1两个。八进制的基数为8,数码为0,1,…,7八个。十六进制的基数为16,数码为0~9,A~F十六个。位权:数制每一位所具有的值,简记为“权”。计算机中的数制7012108107106678基数权数码按权展开式:234.32=2*102+3*101+4*100+3*10-1+2*10-28在按位定制的计数制中,十进制数可以表示成下列形式(用D代表或略去,无后缀符默认为十进制数):(D)10=Di×10i=Dn-1×10n-1+Dn-2×10n-2++D0×100+D-1×10-1++D-m×10-m举例:519.02=5×102+1×101+9×100+0×10-1+2×10-2特点:有0-9十个数字符号,基数为10,是逢十进一的计数制,各数位的权是以10为底的幂。n-1i=-m十进制表示法9一个二进制数可以表示成下列形式(用B代表):(B)2Bn-1×2n-1+Bn-2×2n-2+B0×20+B-1×2-1B-m×2-m举例:1101.01=1×23+1×22+0×21+1×20+0×2-1+1×2-2特点:数值用0,1表示,基数为2,是逢二进一的计数制,各数位的权是以2为底的幂。表示:1101.01B或(1101.01)2二进制表示法10一个八进制数可以表示成下列形式(用Q代表):(B)8=Bn-1×8n-1+Bn-2×8n-2+B0×80+B-1×8-1B-m×8-m举例:3765.02=3×83+7×82+6×81+5×80+0×8-1+2×8-2特点:数值用0-7表示,基数为8,是逢八进一的计数制,各数位的权是以8为底的幂。表示:452.16Q或(1101.01)8八进制表示法11一个十六进制数可以表示成(用H代表):(H)16=Hn-1×16n-1+Hn-2×16n-2+H0×20+H-1×16-1H-m×16-m举例:A3F.3B=10×162+3×16+15×160+3×16-1+11×16-2特点:有0-9及A-F共16个数字符号,基数为16,是逢十六进一的计数制,各数位的权是以16为底的幂。表示:3EFH或(20)16十六进制表示法二进制八进制十进制十六进制不同进制数之间的转换1213(11001.101)2=1×24+1×23+0×22+0×21+1×20+1×2–1+0×2–2+1×2–3=(25.625)10(16A.B)16=(1×162+6×161+10×160+11×16-1)10=(256+96+10+0.69)10=(362.69)10(34.6)8=?=(3×81+4×80+6×8-1)10=(24+4+0.75)10=(28.75)10二、八、十六进制转换成十进制14方法:除2反序取余法例:(29)10=(?)2结果:(29)10=(11101)2291473122222……1……00……1……1……1(高位)(低位)十进制整数转换成二进制整数15方法:乘2顺序取整法例:(0.125)10=(?)2结果:(0.125)10=(0.001)20.500×21.000(低位)0.250×20.125(高位)×2并非所有的十进制小数都能用有限位的二进制小数来表示。例如将(0.63)10转换为二进制。因为,小数部分乘以2会无限循环下去,故:只能取近似值。十进制小数转换成二进制小数16100(D)=144(Q)=64(H)八进制100812818044110016604616十六进制十进制转化成八、十六进制17八进制数转换为二进制数只需将每一个八进制数字改写成等值的3位二进制数即可,且要保持高、低位次序的不变。(16.327)8=(001110.011010111)2=(1110.011010111)2二进制与八进制之间的转换18整数部分从低位向高位方向每3位用一个等值的八进制数来替换,最后若不足3位的在高位处用0补够3位;小数部分从高位向低位每3位用一个等值的八进制数来替换,不足3位的在低位处用0补够3位。(011110111.100010101)2=(367.425)8367.425二进制数转换成八进制数19十六进制数转换成二进制数把每一个十六进制数字改写成等值的4位二进制数即一位拆成四位,且要保持高、低位的次序不变。(4C.2E)16=(01001100.00101110)24C2E=(1001100.0010111)2二进制与十六进制间的转换20整数部分从低位向高位方向每4位用一个等值的十六进制数来替换,即四位并为一位,最后不足4位时在高位处补0,补够4位;小数部分从高位向低位方向每4位用一个等值的十六进制数来替,最后不足4位时在低位处补0,补够4位。(111001011010.10111001)2=(E5A.B9)16E5A.B9二进制数转换为十六进制数210000010001200103001140100练习5010160110701118100091001101010111011121100131101141110151111(1110011010.111)2=()8=()16=22计算机是美国人发明的,因此计算机的字符集中自然包含了英文的26个字母。计算机要在全世界通用,必须采用公认的标准格式对字符、符号进行编码。常用的字符编码有ASCII码、BCD码、西文字符编码和EBCDIC码。编码23十进制数的二进制编码(BCD)是指十进制数在计算机中用二进制编码来表示。二·十进制编码的方法很多,8421码是最常见的一种,即每一位十进制数用四位二进制编码来表示。例如,十进制数2816的8421码为:十进制数28168421码0010100000010110BCD码在形式上变成了0和1组成的二进制形式,而实际上它表示的是十进制数,只不过是每位十进制数是用4位二进制编码表示。BCD(BinaryCodedDecimal)码24ASCII码有标准ASCII码和扩展ASCII码两种。标准的ASCII码使用7位的二进制数来编码,即每一个字符对应着一个7位的二进制数。所以用标准的ASCII码可以表示27=128个字符,其中包含10个阿拉伯数字,52个英文大小字母,33个符号及33个控制字符。扩展的ASCII码用8位二进制数来表示,可以表示256种不同的符号。ASCII码(AmericanStandardCodeforInformationInterchange,美国标准信息交换码)25西文字符处理起来比较简单,而中文信息处理起来就复杂了。汉字是图形文字,常用汉字就有3000~6000个,形状和笔画差异很大。这就决定了汉字字符的编码方案必须完全不同于西文的编码方案。在计算机系统中汉字的输入、内部处理、存储和输出过程中不能使用同一代码。输入码机内码字库字形码26输入码是解决汉字输入采用的编码,如“国标区位码”、“全拼”、“双拼”、“五笔”、“智能ABC”、“搜狗拼音”等输入编码。每一种输入码之所以能存在,是因为各有其特点。如果有人问,哪种输入码最好,回答是“你熟练掌握的那种输入码就是最好的”。输入码27我国在1980年制定了《信息交换用汉字编码字符集·基本集》作为国家标准GB2312-80编码字符集,称为国标码。GB2312-80中规定了信息交换用的6763个汉字和682个非汉字图形符号(包括字母、数字和符号,例如英文、俄文、日文平、片假名等)的代码。在国家标准GB2312-80中,每个汉字采用双字节表示。每个字节只用ASCII码中的低7位,最高位为0。国标码采用十六进制表示。每个汉字的区位码同时对应一个国标码。国标码28十六进制编码十进制编码区位编码国标码编码00……20212223242526…………7C7D7E7F00~20位区123456………………9192939421~2F1~15非汉字图形符号(常用符号、数字序号、俄文、英文、法文、希腊字母、日文平、片假名等)30~5716~55啊阿埃一级汉字(3755个)58~7756~87二级汉字(3008个)78~7E88~94空白区域7F29由于低7位中只有94种状态可用于汉字编码(其它34位是控制字符,不能用),所以两个字节的低7位共有94×94=8836种不同的状态。国标码将6763个汉字和682个非汉字字符(共7445个)划分为94个区,每个区又分为94位,称其为区位表。每个汉字在区位表中有唯一的一个区位码(四位十进制数,前两位数是区号,后两位数是位号)与之对应,称之为“区位码”。例如,汉字“啊”在区位表中的编码是“1601”,既区号是“16”,位号是“01”。30GB2312-80统一规定了汉字的基本编码标准,但是要存储在计算机中与西文编码在计算机中的表示有冲突。例如,英文字符“L”和“1”的ASCII码是“76”和“108”,而汉字的“天”的区位码也是“76”和“108”。问题出在ASCII码和汉字国标码都采用字节的低7位编码方式。为了避免冲突,将国标码两个字节的最高位置“1”,形成汉字的机内码。例如,汉字“中国”,的机内码分别是十六进制的“D6D0”和“B9FA”。机内码31国标码和机内码解决了汉字的编码标准和存储表示,但还没有解决汉字的显示和输出问题。一套汉字(如GB2312)其所有字符形状的数字描述信息组合在一起称之为字库(font)。对汉字形状的数据描述,我们称为汉字字形码。目前计算机系统中有两种字形码:点阵式字形码和矢量字形码。字形码32以点阵方式来表示汉字。每个点用二进制的一位“0”或“1”来分别表示汉字相应位置处的状态,如白、黑特征,从而体现出字的形和体。点阵越大,点数越多,输出的字形就越清晰,越美观。常见的有16×16、24×24、32×32、48×48和128×128。通过一组直线和曲线的数学描述(端点及控制点的坐标),将汉字的每个笔画都转化为数字特征值,组合在一起便得到了这个汉字的字形矢量信息。通过矢量法表示的汉字字形大小、方向可以任意变化,这种方式构成的汉字精度高、美观、清晰,Windows环境中使用的TrueType字库采用的就是典型的矢量字形表示法。缺点是输出前必须通过复杂的运算处理。字形码33“大”字的区号为20,位号为83,区位码为:2083,用14位二进制表示为:00101001010011国标码:01101001110011七位+七位机内码:1011010011110011八位+八位(1)字形码:16×16点阵34汉字信息的处理过程35汉字处理过程中各种编码之间的关系,如下图所示。自动转换字节最高位置“1”转换(调用汉字字库)36声音、图形(Graphic)、图像(Image)等多种信息在计算机中的处理也