如何计算BCD码的十进制代码?

二、十进制旋转8421BCD码转换思路

另外一方面,BCD码概要BCD码(Binary-Coded Decimal )是将1位10进制数中0~9的10个数字用4位的2进制数表示的编码形式,经常用于计算机内部的10进制数和2进制数的转换

BCD码分为权利码和权利码两种。 其中,常见权利BCD码为8421码、2421码、5421码; 您没有BCD码剩下的三码、剩下的三回合码和格雷码的权限。 正如所指出的,8421码从高到低,每个位的权重分别为8、4、2、1,例如十进制9在8421BCD码中表示为1001; 2421和5421代码与8421代码相似,但每个位的权重不同。 例如,十进制9在2421BCD代码中表示为1111,十进制9在5421BCD代码中表示为1100。 剩余3码是8421码加上3,例如十进制9在剩余3码表示为1100; 剩下的3循环码在每个码元中固定为0、1的权重,相邻的码字之间只差1比特,避免了过度的码元噪声。

下图显示了典型的BCD代码

二、用十进制转换8421BCD码的思路以十进制234为例。

步骤2(20 )将b00_左移一位,然后将BCD码的最高位、最低位、最低位共计三组码字对应的十进制码是否大于4

第三步:向左换挡8次后,结束换挡。 此时,前12位是与该十进制数对应的8421BCD代码

三.程序编制下图展示了该模块的示意图。

输入信号:时钟信号sys_clk

输出信号:个位unit

因为输入信号是20位二进制数,并且对应于十进制数的六个位,所以当在20位二进制数之前添加6*4=24个0以构成44位二进制数并且向左移位20次时,获得对应的8421BCD码

下图是Modelsim中仿真的结果:

    初次创作,难免文章中存在错误,希望读者能够及时纠正并给予私信,望大家共同进步!

bcd码二进制转十进制

BCD代码(8421代码) :在BCD 8421代码中 ,每个十进制数字均使用4位二进制数表示。 从MSB到LSB,4位二进制数的权重分别为8、4、2、1。 由于权重是附加的,因此它属于加权代码类别,并且是顺序的

在仅接受0和1形式的二进制数字的数字系统中,解释十进制数字的唯一方法是将其从十进制转换为二进制,反之亦然,这是一个缓慢的过程,并且还需要庞大的电子电路。 因此,我们使用BCD号码。 而且,BCD编号的顺序性质使其在执行算术运算时具有优势。

尽管有很多优点,但也有一些缺点,例如:

BCD代码比普通的二进制代码效率低。 通常,在二进制数中,我们表示(13) 10 =(1101) 2,即,我们需要4位,但在BCD表示法中, (13) 10表示为() 。 在这里,我们需要8位来表示相同的13

另一个缺点是,与通常的二进制数相比,算术运算变得更加复杂,因为在BCD数中,我们有6个非法状态,例如1010、1011、1100、1101、1110和1111 ,它们不是8421 BCD系统的一部分。

下表描述了十进制,二进制和8421 BCD编号之间的关系。

0
0

类似地,BCD表示法中的(53) 10可以表示为()

BCD编号加法二进制加法略有不同。 在此,二进制加法规则仅部分适用于各个4位组。 因此, BCD加法是通过从LSB端开始逐个添加对应的4位组来进行的,如果下一个组有进位,或者结果属于6个非法状态中的任何一个,则我们加6 10 (0110)至该组的总和,并在下一组中添加产生的进位。

示例:执行6和7的BCD加法。

当在BCD中将67相加时,我们得到1101 ,这是一个无效状态,因此,我们将0110(6)添加到总和中以获得正确的结果)

首先,我们将对两个数字进行正常的二进制加法运算,现在我们看到11001010是非法状态,也是从LSB侧开始的第三组4位,即0000的进位为1 。 因此,为了更正,我们必须在所有三个组中添加0110 。 因此,我们得到正确的结果为11

bcd码二进制转十进制

我要回帖

更多关于 十进制转十六进制公式 的文章

 

随机推荐