大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
8421BCD码 5421BCD码 余三码 格雷码 余三循环码之间的关系,转换以及简易方法
1. 有权码和无权码的包括
2.各种码值的介绍
-
8421码的简介
8421码又称为BCD码,是十进代码中最常用的一种。在这种编码方式中,每一位二值代码的“1”都代表一个固定数值。将每位“1”所代表的 二进制数加起来就可以得到它所代表的十进制数字。因为代码中从左至右看每一位“1”分别代表数字“8”“4”“2”“1”,故得名8421码。其中每一位 “1”代表的十进制数称为这一位的权。因为每位的权都是固定不变的,所以8421码是恒权码。
百度百科 -
类比8421BCD码 可以得到 5421码 2421码
由此可知 8421码 5241码和2421码 都是 十进代码 只是最右面位的权值不同
-
余三码
** 余三码(余3码)是由8421BCD码加上0011形成的一种无权码 **,由于它的每个字符编码比相应的8421码多3,故称为余三码。BCD码的一种。余3码的特点:当两个十进制数的和是10时,相应的二进制编码正好是16,于是可自动产生进位信号,而不需修正。0和9, 1和8,……5和4的余3码互为反码,这在求对于10的补码很方便。
余三码是一种对9的自补代码,因而可给运算带来方便。其次,在将两个余三码表示的十进制数相加时,能正确产生进位信号,但对“和”必须修正。修正的方法是:如果有进位,则结果加3;如果无进位,则结果减3。
百度百科 -
格雷码
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码或反射码。
格雷码的介绍格雷码的特点
-
可靠性编码
因为,虽然自然二进制码可以直接由数/模转换器转换成模拟信号,但在某些情况,例如从十进制的3转换为4时二进制码的每一位都要变,能使数字电路产生很大的尖峰电流脉冲。而格雷码则没有这一缺点,它在相邻位间转换时,只有一位产生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。由于这种编码相邻的两个码组之间只有一位不同,因而在用于方向的转角位移量-数字量的转换中,当方向的转角位移量发生微小变化(而可能引起数字量发生变化时,格雷码仅改变一位,这样与其它编码同时改变两位或多位的情况相比更为可靠,即可减少出错的可能性。 -
绝对编码方式
典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。 -
变权码
每一位码没有固定的大小,很难直接进行比较大小和算术运算,也不能直接转换成液位信号,要经过一次码变换,变成自然二进制码,再由上位机读取 -
绝对编码方式的准权码
典型格雷码是一种采用绝对编码方式的准权码,其权的绝对值为2^i-1(设最低位i=1) -
格雷码的十进制数奇偶性与其码字中1的个数的奇偶性相同
-
-
余三循环码
余3循环码是变权码,每一位的1并不代表固定的数值,它具有格雷码的优点,即两个相邻代码之间仅有一位的状态不同。 .
3几种码制之间的转换关系
十进制数 | 二进制 | 8421码 | 5421码 | 2421码 | 余三码 | 余三循环码 |
---|---|---|---|---|---|---|
0 | 0000 | 0000 | 00000 | 0000 | 0011 | 0010 |
1 | 0001 | 0001 | 0001 | 0001 | 0100 | 0110 |
2 | 0010 | 0010 | 0010 | 0010 | 0101 | 0111 |
3 | 0011 | 0011 | 0011 | 0011 | 0110 | 0101 |
4 | 0100 | 0100 | 0100 | 0100 | 0111 | 0100 |
5 | 0101 | 0101 | 1000 | 1011 | 1000 | 1100 |
6 | 0110 | 0110 | 1001 | 1100 | 1001 | 1101 |
7 | 0111 | 0111 | 1010 | 1101 | 1010 | 1111 |
8 | 1000 | 1000 | 1011 | 1110 | 1011 | 1110 |
9 | 1001 | 1001 | 1100 | 1111 | 1100 | 1010 |
本人建议:码制之间的转换方法虽然有 但是不介意用 因为记住才是王道 但如果那个忘记了 可以用此方法进行演推
- 4位二进制码 和 8421码完全相同 所以可以直接转换
注意
BCD码 是四位 不可随意增删 0
- 8421码 转换成 5421码 (2421码)
先转换十进制码值 然后再转换成 5421码(2421码)
例如: (0110 1000 1001)8241BCD = (6 8 9)D =(1001 1011 1100)5421BCD = (1100 1110 1111)2421BCD码注意哦
如果2421码 如果码值a>4 需要先权值追高位 依次进行转化就行了
例如 a=5
5-2=3 ······1
3-4<0 ······0
3-2=1 ······1
1-1=0 ······1
故:(5)D=(1011)2421BCD - 余三码转换
8421码转换成余三码
(abcd)8421码 + (0011) = (wxyz)余三码-
(h)D转化成余三码
(h+3)D —> 4位二进制数=余三码
如果不足四位在最左面补0 -
5421码 转换成余三码.
- 从左到右 如果左面第一位不是1
(0bcd)5421码 + (0011) = (wxyz)余三码 - 从左到右 如果左面第一位是1
5421码 和 余三码相同
- 从左到右 如果左面第一位不是1
-
格雷码
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/207168.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...