84-2-1码转换有效性咨询:4位下十进制13的表示及大数转换问题
84-2-1码相关问题解答
问题概述
拟制作十进制数值与84-2-1码的对照表,存在两个疑问:
- 4位编码场景下,十进制数13用84-2-1码表示是否合规?
- 大于9的十进制数能否用84-2-1码转换?若不可行请说明原因。
(附自行推导的转换图)
问题解答
1. 4位场景下十进制13的84-2-1码表示不合规
84-2-1码是有权BCD(二进制编码十进制)码的一种,核心规则是用4位二进制数对应1位十进制数,每一位的权值固定为8、4、2、1,有效编码范围仅对应十进制0-9(即二进制0000到1001)。
十进制13是两位数,无法用单个4位84-2-1码表示;若强行用4位二进制1101(权值8+4+1=13)来对应,这已经脱离了84-2-1码作为BCD码的定义,属于非规范使用。
2. 大于9的十进制数可以转换,但需按位拆分编码
大于9的十进制数并非不能用84-2-1码转换,而是要遵循BCD码的基本逻辑:将十进制数按个位、十位、百位等拆分,每一位单独用4位84-2-1码表示,再拼接起来。
比如十进制13,需拆分为十位的1和个位的3,分别编码为0001(1的84-2-1码)和0011(3的84-2-1码),最终合规的84-2-1码表示为0001 0011。
如果试图用单个4位编码表示大于9的数,会违反BCD码“一位十进制对应一组4位二进制”的规则,且84-2-1码定义中没有用单个4位编码表示10-15的规范,这类编码(1010-1111)属于84-2-1码的无效编码区间。
内容的提问来源于stack exchange,提问作者Harvsvsvsv
相关产品推荐
相关产品推荐

