非数值数据的编码方式

非数值数据的类型

  • 1)逻辑值、字符等数据都是非数值数据,在机器内部它们用二进制表示。
逻辑值
  • 1)正常情况下,每个字或是其他可寻址单位(字节、半字)是作为一个整体数据单元。
  • 2)n位二进制可以表示n个逻辑值。逻辑值只能参加逻辑运算,并且按位进行的。
  • 3)逻辑数据和数值数据都是一串0/1序列。逻辑运算指令处理的是逻辑数据,算术运算指令处理的数值数据。
西文字符
  • 1)西文由拉丁字母、数字、标点符号以及一些特殊的符号所组成,统称为字符。
  • 2)所有字符的集合叫做字符集,字符不能直接在计算机内部进行处理,要对其进行数字化编码。
  • 3)字符集中每一个字符都有一个代码,构成了该字符集的代码表,简称码表。PS:码表中的代码具有唯一性。
  • 4)西文只需要对有限的字母和数学符号、标点符号等进行编码,所以总数不会超过256个。
  • 5)
    PS:
    1)数字0~9比字母要小。如"7"<"F";
    2)数字0比数字9要小,并按0到9顺序递增。如"3"<"8"
    3)字母A比字母Z要小,并按A到Z顺序递增。如"A"<"Z"
    4)同个字母的大写字母比小写字母要小。如"A"<"a"。
    5)“换行LF”为0x0A;“回车CR”为0x0D;空格为0x20;"0"为0x30; "A"为0x41;"a"为0x61。
汉字字符
  • 1)汉字的输入码:汉字的输入码的码元是西文键盘的某个按键。
  • 2)字符集与汉字内码:不能有二义性,即不能和ASCII码有相同的编码
  • 3)要与汉字在字库中的位置有关系,以便于汉字的处理、查找。
  • 4)编码尽量短
汉字的字模点阵码和轮廓描述
  • 1)字模点阵描述是将字库的各个汉字或其他字符的字形用一个其元素0和1组成的方阵。汉字或字符中有黑点用1表示,空白处用0表示。
  • 2)汉字的轮廓描述是吧汉字笔画的轮廓用一组直线和曲线来勾画,记下直线和曲线的数学描述公式

数据的宽度和存储

数据的宽度和单位

  • 1)计算机内部任何信息都被表示为二进制编码形式。二进制数据的每一位(0和1)组成的最小单位叫做比特(bit)或称为元,简称为位。PS:比特是计算机中处理、存储和传输信息的最小单位。
  • 2)二进制信息的计量单位是字节(byte),也称为组。还有一个“字”作为单位的。
  • 3)所谓字长指的是CPU内部用于整数运算的数据通路宽度。
  • 4)字用来表示被处理信息的单位,用来量度各种数据类型的宽度。
  • 5)字长表示进行数据运算、存储和传送的部件的宽度。
  • 6)带宽单位
  • 7)C语言数值数据的类型的宽度
数据的存储和排列顺序
  • 1)信息在计算机中用二进制编码后,得到的是一串0/1序列,每8位构成的一个字节,不同的数据类型具有不同的字节宽度。
  • 2)最低有效位LSB表示最低位,最高有效位MSB表示最高位。最高位MSB是符号位。
  • 3)计算机中,多字节数据都被放在连续的字节序列中。两种排列的方式:大端和小端
  • 4)大端方式将数据的最高有效字节MSB存放在低地址单元中,将最低有效字节LSB放在高地址单元中。数据的地址就是MSB所在的地址。
  • 5)小端方式将数据最高有效字节MSB存放在高地址汇总,将最低有效字节放在低地址中。数据就是LSB在的地址。
数据校验码
  • 1)由于元器件故障或者噪声干扰等原因会出现差错,为了提升计算机的抗干扰能力以及自动的发现并纠正错误。
  • 2)数据校验示意图
  • 3)码距:任何编码都由一组码字(code word)组成,两个码字间变化的二进制位数称为码距(code distance)
    ps:
    若用1位长度的二进制编码。A=1,B=0。则A和B之间最小的码距为1
    若用2位长度的二进制编码。A=11,B=00。则A和B之前最小的码距为2
    若用3位长度的二进制编码。A=111,B=222。则A和B之间最小的码距为3
  • 4)码距与检错和纠错之间的关系
    若在一个码组内为了检测e个误码,最小的码距d应该满足 d>=e+1
    若在一个码组内为了纠正t个误码,最小的码距d应该满足 d>=2t+1
    若在一个码组内为了纠正t个错误,同时检测e(e>=t)个错误,要求最小码距d满足 d>t+e+1
奇偶校验码
  • 1)每位异或判断是奇数个一还是偶数个一。奇偶校验码是奇校验码和偶校验码的统称. 它们都是通过在要校验的编码上加一位校验位组成. 如果是奇校验加上校验位后,编码中1的个数为奇数个。如果是偶校验加上校验位后,编码中1的个数为偶数个。
海明校验码
  • 1)海明码也是利用奇偶性来校验数据的. 它是一种多重奇偶校验检错系统,它通过在数据位之间插入k个校验位,来扩大码距,从而实现检错和纠错.
  • 2)
  • 概念
  • 解题步骤


循环冗余校验码
  • 1)实现方法:利用除数以及余数的原理进行错误检测,将接收到的码组进行除法运算,如果除尽,则说明传输无误;如果未除尽,则表明传输出现差错。
  • 2)
疑问
  • 海明校验码中为什么故障字中仅有一位为1则表示校验位发生错误,不用纠正?
  • 循环冗余校验码校验位怎么样计算?
posted @ 2020-09-17 20:54  邹世诚  阅读(1225)  评论(0编辑  收藏  举报