编码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编码相关的知识,希望对你有一定的参考价值。
第二篇记录一下编码。
编码:用于表示不同的数或其他事件的一组n位二进制码的集合,称为一种编码。
码字:一个含义确切的特定的n位组合,称为码字。
总之可以这么理解,编码就是一种表达二进制数集合的方式。
1、十进制数的二进制编码
①十进制数的二进制编码也就是用二进制表示10个十进制数0~9 。
②十进制数的二进制编码方式主要有:BCD码,也叫8421码;5421码;2421码;余3码。下面是表格,但是这里值简述一下8421码;2421码;余3码。
③8421码:如上图所示,是最习惯用二进制表示十进制数的一种方式。最高位的值是8,次高位是4,次低位是2,最低位是1 。因此一个二进制数1001表示的数值就是1*8+1*1 = 9 。也就是按权展开就是十进制数值了。
④2421码:数值小于等于4时,2421码等于8421码;数值大于4时等于8421码加6 。
⑤余3码:8421码加上0011就对应数值的余3码。
2、格雷码
(1)概念:百度百科是这样说的:在一组二进制数的编码中,若任意两个相邻的二进制数只有一位二进制数不同,则称这种编码为格雷码。
·由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码或反射码。
(2)二进制与格雷码的相互转换:这里的二进制不是只BCD码,就是自然的二进制。
①二进制转换为格雷码:
转换方法:
自然二进制的最高位与格雷码的最高位相同;然后从最低边一位起,依次将每一位与左边一位进行比较,相同取0,不同取1,(也就是异或运算)作为对应格雷码该位的值。
举例比较方便:
110010转换成格雷码:
过程图:
首先最高位是1,那么格雷码最高位是1;然后从最低位起跟左边一位进行比较;
最低位是0,它的左边一位是1,因此得到格雷码的最低位是1;
次低位是1,它的左边一位是0,因此得到次低位的格雷码是1;
次次低位0,它的左边一位是0,因此得到次次低位的格雷码是0;
...
次高位是1,它的左边一位是1(也就是最高位),因此格雷码的次高位是0;
这样就得到格雷码:101011 。
②格雷码转二进制码:
转换方法:
这个转换方类似,只不过是倒着回来;同样保留格雷码的最高位作为自然二进制码的最高位,而次高位自然二进制码为最高位自然二进制码与次高位格雷码相异或(就是那个相同取0,不同取1),而自然二进制码的其余各位与次高位自然二进制码的求法相类似。
举例吧:
把格雷码101101转换成二进制数:
过程图:
转换过程不再详述。
(3)格雷码的特点:
百度百科总结如下:
①格雷码属于可靠性编码,是一种错误最小化的编码方式。
·自然二进制码可以直接由数/模转换器转换成模拟信号,但在某些情况,例如从十进制的3转换为4时二进制码的每一位都要变,能使数字电路产生很大的尖峰电流脉冲。
·格雷码则没有这一缺点,它在相邻位间转换时,只有一位产生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。
·由于格雷码相邻的两个码组之间只有一位不同,因而在用于方向的转角位移量-数字量的转换中,当方向的转角位移量发生微小变化(而可能引起数字量发生变化时,格雷码仅改变一位,这样与其它编码同时改变两位或多位的情况相比更为可靠,即可减少出错的可能性。
②格雷码是一种绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。
③格雷码是一种变权码,每一位码没有固定的大小,很难直接进行比较大小和算术运算,也不能直接转换成液位信号,要经过一次码变换,变成自然二进制码,再由上位机读取。
④典型格雷码是一种采用绝对编码方式的准权码,其权的绝对值为2^i-1(设最低位i=1)。
⑤格雷码的十进制数奇偶性与其码字中1的个数的奇偶性相同。
3、ASCII码
(1)简介
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统。
(2)一个ASCII码用8位二进制表示。
只记录这些,详情自己Google或者百度吧。
4、其他编码
其他的编码,如奇偶校验码、循环冗余检验码(CRC)、汉明码、二维码、NRZ编码、霍夫曼编码、曼彻斯特编码等等这些编码在以后应用到的时候,再进行记录。
以上是关于编码的主要内容,如果未能解决你的问题,请参考以下文章