zoukankan      html  css  js  c++  java
  • 预习非数值数据的编码方式

    非数值数据的类型

    1.逻辑值

    正常情况下,每个字或其他可寻址单位(字节、半字等)是作为一个整体数据单元看待的。但是,某些时候还需要将一个n位数据看成由n个1位数据组成,每个取值为0或1。例如,有时需要存储一个布尔或二进制数据阵列,阵列中的每项只能取值为1或0;有时可能需要提取一个数据项中的某位进行诸如“置位”或“清零”等操作。当数据以这种方式看待时,就被认为是逻辑数据。因此n位二进制数可表示n个逻辑值。逻辑数据只能参加逻辑运算,并且是按位进行的,如按位“与”、按位“或”、逻辑左移、逻辑右移等。
    逻辑数据和数值数据都是一串0/1序列,在形式上无任何差异,需要通过指令的操作码类型来识别它们。

    2.西文字符

    西文由拉丁字母、数字、标点符号及一些特殊符号所组成,它们统称为字符。所有字符的集合叫做字符集。字符不能直接在计算机内部进行处理,因而也必须对其进行数字化编码,字符集中每一个字符都有一个代码(即二进制编码的0/1序列),构成了该字符集的代码表,简称码表。码表中的代码具有唯一性。
    字符主要用于外部设备和计算机之间交换信息。一旦确定了所使用的字符集和编码方法后,计算机内部所表示的二进制代码和外部设备输人、打印和显示的字符之间就有唯一的对应关系。字符集有多种,每个字符集的编码方法也多种多样。目前计算机中使用最广泛的西文字符集及其编码是ASCII码。
    (1)字符0~9这10个数字字符的高3位编码为011,低4位分别为0000~1001。当去掉高3位时﹐低4位正好是0~9这10个数字的8421码。
    这样既满足了正常的排序关系,又有利于实现 ASCII码与十进制数之间的转换。
    (2)英文字母字符的编码值也满足正常的字母排序关系,而且大,小写字母的编码之间有简单的对应关系,差别仅在b。这一位上,若这一位为0,则是大写字母;若为1,则是小写字母。

    3.汉字字符

    中文信息的基本组成单位是汉字,汉字也是字符。但汉字是表意文字,一个字就是一个方块图形。计算机要对汉字信息进行处理,就必须对汉字本身进行编码,但汉字的总数超过6万字,数量巨大,给汉字在计算机内部的表示、汉字的传输与交换、汉字的输人和输出等带来了一系列问题。为了适应汉字系统各组成部分对汉字信息处理的不同需要,汉字系统必须处理以下几种汉字代码:输人码、内码、字模点阵码。

    数据的宽度与存储

    1.计算机内部任何信息都被表示为二进制编码形式。
    2.二进制信息的计量单位是字节(byte),也称为组。
    3.字用来表示被处理信息的单位,用来量度各种数据类型的宽度。
    4.字长表示进行数据运算、存储和传送的部件的宽度。

    数据的存储和排列顺序:

    1.信息在计算机中用二进制编码后,得到的是一串0/1序列,每8位构成的一个字节,不同的数据类型具有不同的字节宽度。
    2.最低有效位LSB表示最低位,最高有效位MSB表示最高位。最高位MSB是符号位。
    3.计算机中,多字节数据都被放在连续的字节序列中。两种排列的方式:大端和小端
    4.大端方式将数据的最高有效字节MSB存放在低地址单元中,将最低有效字节LSB放在高地址单元中。数据的地址就是MSB所在的地址。
    5.小端方式将数据最高有效字节MSB存放在高地址汇总,将最低有效字节放在低地址中。数据就是LSB在的地址。

    数据校验码

    数据在计算机内部进行计算、存取和传送过程中,由于元器件故障或噪音干扰等原因会出现差错,为了减少和避免这些错误,一方面要从计算机硬件本身的可靠性入手,在电路、电源、布线等各方面采取必要的措施,提高计算机抗干扰能力;另一方面要采取相应的数据检错和校正措施,自动的的发现并纠正错误。

    1.奇偶校验码

    最简单的数据校验。在奇偶校验码中,若两个数据位不同,则他们的校验位就不同;若有偶数位不同,则虽校验位相同,但至少有两位数据位不同,因而任意两个码之间至少有两位不同。根据码距和检错/纠错能力的关系可知,他只能发现奇数位出错,不能发现偶数位出错,而且不能发现出错的位置,不具备纠错能力。但奇偶校验法所用的开销小,它常被用储存器读写检查或按字节传输过程中的数据校验,所以奇偶叫校验法用于校验字节长的代码还是有效的。

    2.海明校验码

    将数据按某种规律分成若干组,对每组进行相应的奇偶检测,以提供多位校验信息,从而可对错误位置进行定位,并将其纠正。海明校验码实质上就是一种多重奇偶校验码。

    3.循环冗余校验码

    循环冗余校验码是一种具有较强检错,纠错能力的校验码,常用于外存储器和计算机同步通信。奇偶校验码和海明校验码都是采用奇偶检测为手段检错和纠错的(奇偶校验码不具有纠错能力),而循环冗余校验则是通过某种数学运算来建立数据位和校验位的约定关系的。

    检验码的区别

    奇偶校验根据数据的奇偶性变化来检错,只能检测奇数个错。海明校验是分组奇偶校验,SEC只能纠正一位错,SEC-DED可纠正一位错并检测两位错。循环冗余码校验通过某种数学运算在数据和校验位之间建立约定关系,它可以对较长数据块进行校验而不增加校验位开销,因此,主要用于对大批量数据的存储或传输校验。

    难点

    非数值数据的编码类型。
    数据的储存。
    ASCII码表的使用。

  • 相关阅读:
    PowerDesigner快捷键
    Android 的开源电话/通讯/IM聊天项目全集
    Android ContentProvider完整案例
    Android中观察者模式的升入理解
    Android中Socket大文件断点上传
    Storm概念学习系列之Tuple元组(数据载体)
    开始使用storm
    Storm概念学习系列之storm的功能和三大应用
    Storm概念学习系列之storm的特性
    Storm概念学习系列之storm核心组件
  • 原文地址:https://www.cnblogs.com/ai-1314ai-ni-ai-23/p/13701106.html
Copyright © 2011-2022 走看看