你好
本节主要讲述信息的二进制编码
数字系统处理
存储和显示的信息
除以上介绍的数值信息外
还有英文字母 数字
符号和汉字等字符信息
为了让数字系统
能够对事物 事件 状态 字符等
非数值信息进行处理
必须对这些信息
用一组二进制数进行表示
这个过程就是编码
编码就是将非数值信息
转换为数字电路可以接受的
二进制代码
因此编码就是用于表示不同数
或其他事件的
一组n位二进制码的集合
我们对动作 条件和状态
进行编码
可以使用b位二进制编码
来表示n个不同状态
对字符进行编码
我们主要用ASCII码表示
由于人们习惯使用十进制数
许多数字电路的外部接口
都要求能够读写和显示十进制数
因此在数字系统中
需要用0或1的位串
来表示十进制数
由位串的不同组合
来表示十进制数中的不同数码
那么如何用4位二进制数
来表示1位十进制数呢
我们引入了BCD码
Binary Coded Decimal
也就是二进制编码表示十进制数
那么负的BCD数要如何表示呢
和二进制数类似
负的BCD码有很多可能的表示
有符号的BCD码
其符号占一个数字位
也就是4位二进制数码
符号数值表示法
和十进制补码表示法
都是很流行的表示方式
在符号数值BCD表示中
符号位的编码可以是任意的
只要事先约定好就可以了
而在十进制补码中
一般用0000表示正
1001表示负
许多数字电路的读写和显示端口
就是使用BCD码
来表示十进制数的
而有的数字设备更是要求
能够直接处理十进制数
比如使用BCD码
进行十进制的加减运算
BCD码加法
类似于4位无符号数加法
但如果结果超过1001
则必须将结果再加修正因子校正
4位二进制相加的是逢十六进一
而BCD码表示的十进制数
是逢十进一
所以修正因子
就是十六进制与十进制
最大数的差值
十进制数的二进制编码
最直接的编码方式
是用4位二进制码的前10个
记成0000到1001
来表示十进制数0到9
该二十进制编码
称为自然二进制编码
也是最常用的编码方式
后面如果没有特别说明
所说的BCD码
就是指的这种编码方式
4位二进制编码的16种组合中
按二进制数递增顺序排列
如果取前10个
分别对应数码0到9
就是自然二进制编码
如果取前5个和后5个
舍去中间的6个
就是2421码
如果去掉前3个和后3个
取中间的10个对应0到9
就是余3码
自然二进制编码是一种加权码
因为每个十进制码
都可以由其码字求得
码字的每一位有固定的权
从左到右分别是8 4 2 1
正因为如此
自然二进制编码有时也叫8421码
2421码也是一种加权码
同时它还具有自反码的优点
也就是将任意数字的十进制数码
码字按位取反
即可以得到该数字的十进制反码
另一种自反码是余3码
虽然它不是加权码
但是它与8421BCD码有算术关系
即每一个十进制数的余3码
等于其对应的8421BCD码加3
十进制编码也可以不止4位
例如二五混合码就用了7位
码字的前2位
表示十进制数是0到4还是5到9
后5位表示指定范围内的哪个数
如果编码使用的位数
多余最小位数
有一个潜在的优点
具有检错特性
在二五混合码中
如果码字中任何一位偶然变反
则结果就不表示十进制数了
就可以标识为一个差错
10中取1码又称为独热码
每个编码码字均为10位
在这10位中只有1位为1
其他9位均为0
独热码是数字系统中
最常用到的控制性编码
具有高效简单的特性
是其他编码难以取代的
本节主要讲述了
动作 条件和状态的编码
字符编码
十进制数的二进制编码
和BCD数的加法
好 这一节我们就讲到这里
谢谢