数制与码制(2)
数制的三要素是:数码、基数、位权
小数的精度及转换位数的确定
n位R进制小数的精度:R^-n
如:
转换位数的确定:
码制
MSB(最高有效位),如整数部分的0,一般可去,不影响。
LSB(最低有效位),如小数部分末尾的0,这个位置的0一般决定了小数的有效位数,不可去。
- 自然二进制码
- 循环码
- 奇偶校验码
循环码
具有以下性质:
- 相邻性:相邻两代码中的码距为1;
- 循环性:循环码的首尾两代码的码距也为1,具有相邻性;
- 反射性:最高位权之间互补反射,其余位权镜像对称;
码距:两代码中取值不同的码元的位数;
用卡诺图可以方便记忆循环码:
奇偶校验码
由信息码和一个奇校验位(或偶校验位)构成,用来保证代码为奇数或者偶数,以此来校验编码是否正确;
二进制—BCD码
为什么引入BCD码呢?
我们的的生活中常常使用的是十进制,而数字系统只能处理二进制,BCD应运而生。
定义:用4位二进制串b3b2b1b0来表示十进制中的0~9十个数码,编码方式多样。
- 有权码:b3b2b1b0四个数有位权
- 无权码:没有位权
有权码:如8421码
8421码,由名称可以看出,b3b2b1b0四个数的位权分别为8,4,2,1,类似于二进制编码,5421码,2421码同样类似
无权码:如余3码和余3循环码
余3码像是由8421码前移了三位来表示,即8421码中用来表示3的数在余3码中被用来表示0,至于为什么要这么做,我也不太清楚,欢迎小伙伴们和我多多交流。
余3循环码是循环码前移了3位构成;
有意思的小知识:
利用上述编码的原理,我们可以设计出很多有用的装置,在自动控制中常见的编码器电机的测速原理,即可通过上述的编码方式,加以一定的处理实现;
我们可以通过识别光电编码盘的位置来识别其在较短时间内转过的角度,并进一步得出电机的转速;
多位十进制数的表示及加减运算
BCD码的转换,需要先将BCD转换成标准的十进制,再向其它进制去转换。
加减运算
1+9达到了10,超出了4位BCD码可以表示的范围,BCD码原理上我认为可以理解为十进制,而4位2进制可以表示的数位16位,所以需要加上或减去一个数,认为的帮助其进位,因此我们可以加上6(0110)去修正上述的运算结果。
减法运算也是类似:我们可以减去6(0110)去修正上述的运算结果。