有关十进制整数(BCD)转换成二进制的电路设计!

1、将2个BCD码转换成对应的二进制数;并设计完成此功能的“逻辑电路”。
2、选择适当的逻辑电路和芯片实现该功能。

最好是利用MAX-PLUSII进行电路设计和仿真

另外是十进制转换成二进制。不是二进制转换成十进制!!!!!
3L的仁兄,请你再具体的说一说该如何实现这功能好吧。。。。

十进制整数(BCD)转换成二进制:

在数学中,我们都知道随便一个十进制数如5468,那么它的计算过程可以转换为:5468=5*1000+4*100+6*10+8,因此BCD码转成二进制数的算法就是:

abcd=a*1000+b*100+c*10+d。

这种算法是最常规的一种算法,里面需要用到乘法器以及加法器,这种实现方式比较耗费资源,下面梦翼师兄会介绍一种算法,这种算法需要用到加法和移位来完成BCD转二进制数的功能,从而尽可能的节约逻辑资源。

二进制码左移一位等于未左移的二进制码*2,例如有二进制码101001,转成十进制等于41,左移一位得到1010010,转成十进制等于82。

也就是说二进制码左移1位加上左移3位可以等效于二进制码乘以10。

用实例分析:十进制数29;

用BCD码表示:十位上的十进制数为2==BCD码表示为0010;个位上的十进制数9===BCD码表示为1001;所以总的来说十进制数29用BCD码表示为:00101001。

转换过程:把BCD码0010(十进制数为十位上的2)右移4位(其实表示当作一个个位数,或者说单纯的数值),然后乘以10还原到十进制的权重(因为这个数本来表示的就是十进制数中的十位)。处理完十位上的数,接着处理个位上的数。

因为BCD码的权重和二进制的前四位权重是一样(2^n,n为位数),所以直接用前面的十位上的数加上它就可以了。

简单点分析:0010(十位上的2BCD码表示)×10+1001(个位上的9BCD码表示)=29的二进制数

C代码表示:#define BCD_TO_BIN(val)   ((((val) >> 4) * 10) +  ((val)&15))。

扩展资料:

BCD码是用4位二进制数(各个位的权重分别为:8421,所以叫8421码)来表示一位十进制数。

这里的一位十进制数要特别说明下,一位十进制数只能是 0~9之间的一个数值。比如:6 就是表示一位十进制数6;66则是表示两位十进制数;666则是表示三位十进制数。

BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。

相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免去使计算机作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。

参考资料:百度百科-BCD码

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-05-04
二进制编码的十进制数,简称BCD码(Binarycoded Decimal). 这种方法是用4位二进制码的组合代表十进制数的0,1,2,3,4,5,6 ,7,8,9 十个数符

二进制编码的十进制数,简称BCD码(Binarycoded Decimal). 这种方法是用4位二进制码的组合代表十进制数的0,1,2,3,4,5,6 ,7,8,9 十个数符。4位二进制数码有16种组合,原则上可任选其中的10种作为代码,分别代表十进制中的0,1,2,3,4,5,6,7,8,9 这十个数符。最常用的BCD码称为8421BCD码,8.4.2.1 分别是4位二进数的位取值。 点击此处将给出十进制数和8421BCD编码的对应关系表。
1、BCD码与十进制数的转换
BCD码与十进制数的转换.关系直观,相互转换也很简单,将十进制数75.4转换为BCD码如:
75.4=(0111 (0101.0100)BCD 若将BCD码1000 0101.0101转换为十进制数如: (1000 0101.0101)BCD=85.5
注意:同一个8位二进制代码表示的数,当认为它表示的是二进制数和认为它表示的是二进制编码的十进制数时,数值是不相同的。
例如:00011000,当把它视为二进制数时,其值为24;但作为2位BCD码时, 其值为18。
又例如00011100,如将其视为二进制数,其值为28,但不能当成BCD码,因为在8421BCD码中,它是个非法编码 .
2、BCD码的格式
计算机中的BCD码,经常使用的有两种格式,即分离BCD码,组合BCD码。
所谓分离BCD码,即用一个字节的低四位编码表示十进制数的一位,例如数82的存放格式为:
_ _ _1 0 0 0 _ _ _ _0 0 1 0 其中_表示无关值。
组合BCD码,是将两位十进制数,存放在一个字节中,例82的存放格式是1000 0010
3、BCD码的加减运算
由于编码是将每个十进制数用一组4位二进制数来表示,因此,若将这种BCD码直接交计算机去运算,由于
计算机总是把数当作二进制数来运算,所以结果可能会出错。例:用BCD码求38+49。
解决的办法是对二进制加法运算的结果采用"加6修正,这种修正称为BCD调整。即将二进制加法运算的结果修正为BCD码加法运算的结果,两个两位BCD数相加时,对二进制加法运算结果采用修正规则进行修正。修正规则:
(1)如果任何两个对应位BCD数相加的结果向高一位无进位,若得到的结果小于或等于9,则该不需修正;若得到的结果大于9且小于16时,该位进行加6修正。
(2)如果任何两个对应位BCD数相加的结果向高一位有进位时(即结果大于或等于16),该位进行加6修正.
(3)低位修正结果使高位大于9时,高位进行加6修正。
下面通过例题验证上述规则的正确性。
用BCD码求35+21 BCD码求25+37 用BCD码求38+49 用BCD码求42+95
用BCD码求91+83 用BCD码求94+7 用BCD码求76+45
两个组合BCD码进行减法运算时,当低位向高位有借位时,由于"借一作十六"与"借一作十"的差别,将比正确的结果多6,所以有借位时,可采用"减6修正法"来修正.两个BCD码进行加减时,先按二进制加减指令进行运算,再对结果用BCD调整指令进行调整,就可得到正确的十进制运算结果。 实际上,计算机中既有组合BCD数的调整指令,也有分离BCD数的调整指令。另外,BCD码的加减运算,也可以在运算前由程序先变换成二进制数,然后由计算机对二进制数运算处理,运算以后再将二进制数结果由程序转换为BCD码
第2个回答  推荐于2018-03-02

有现成的芯片。

芯片(1)74LS154

:4-16线译码器,四位2进制数(4位BCD码编制)转换为16位2进制数

芯片(2)74LS138

:3-8线译码器,3BCD---转8位2进制数 

你可以去www.21ic.com上搜索这两个芯片的原理图。原理图太大了上传不了。

本回答被提问者和网友采纳
第3个回答  2022-09-02
将 2 个 BCD 码转换成对应的二进制数;
并设计完成此功能的“逻辑电路”。
-------------
这两个 BCD 码,应该是“十位”和“个位”吧。
十位的,乘以 10,---可以用 283 实现。
再加上 个位的。 ---也可以用 283 实现。
不就行了? 一点难度都没有。
第4个回答  2009-06-17
我的意思是你不可能找到比我找个答案更好的答案了,自己找个人或者去网上搜搜吧,200分提问这样的问题确实浪费,根本没有人去帮你解答,这是一件大工程,说实话,弄一篇这样的论文我都可以回答一两千的高分问题了,不要在这里等答案误事

有关十进制整数(BCD)转换成二进制的电路设计!
十进制整数(BCD)转换成二进制:在数学中,我们都知道随便一个十进制数如5468,那么它的计算过程可以转换为:5468=5*1000+4*100+6*10+8,因此BCD码转成二进制数的算法就是:abcd=a*1000+b*100+c*10+d。这种算法是最常规的一种算法,里面需要用到乘法器以及加法器,这种实现方式比较...

十进制转二进制或者BCD码的电路
十进制转二进制实则是一个译码任务。十进制数在电路中通过BCD码表示,输出的二进制数同样由0和1组成。因此,该问题在于将一种编码方式转换为另一种编码方式。解决该问题有现成的编码电路可供使用,如74LS154和74LS138。其中,74LS154是4-16线译码器,能够将四位BCD码表示的十进制数转换为16位二进制...

bcd码怎么转化为二进制?
转换过程:把BCD码 0010(十进制数为十位上的 2)右移4位(其实表示当作一个个位数,或者说单纯的数值),然后乘以10 还原到十进制的权重(因为这个数本来表示的就是十进制数中的十位)。处理完十位上的数,接着处理个位上的数。因为BCD码的权重和二进制的前四位权重是一样(2^n,n为位数)...

BCD码怎样转换为二进制码
bcd码就是0-9共10个数字,对应的二进制码就是0000-1001。如7对应0111;26对应0010 0110;456对应0100 0101 0110,其文件运行如图所示。如果每位BCD码使用一个字节(8位),那么:7对应0000 0111;26对应0000 0010 0000 0110;456对应00000100 00000101 00000110。

bcd码十进制怎么转二进制
十进制转二进制其实是一个译码的问题。因为十进制数在电路中靠由0和1组成的BCD码实现,而输出的二进制数还是由0和1组成,所以这个问题只是把一种编码方式转化为另外一种。其中74LS154是4-16线译码器,可以将四位BCD码编制的十进制数转换为16位2进制数。74LS138是3-8线译码器,可以将三位BCD码编制...

BCD编码是怎样转化成二进制的?
转换过程:把BCD码 0001(十进制数为十位上的 1)右移4位(其实表示当作一个个位数,或者说单纯的数值),然后乘以10 还原到十进制的权重(因为这个数本来表示的就是十进制数中的十位)。处理完十位上的数,接着处理个位上的数。因为BCD码的权重和二进制的前四位权重是一样(2^n,n为位数)...

bcd转成二进制是什么?
bcd码中只有0~9十进制数,但是在四位二进制中是16进制进1,因此在移位过程中要对二进制进行判断,当在移位之后的状态Qn+1大于9,要对Qn加6才可以。例如:1000移位大于9加6为0001_0110,对应bcd码中的16。也可以在移位之前进行判断,如果移位之前的Qn数据大于4,说明Qn+1会溢出,所以可以+3再进行...

BCD码怎么转换为二进制数?
可以用加3移位法转换:BCD码中只有0~9十进制数,但是在四位二进制中是16进制进1,因此在移位过程中要对二进制进行判断,当在移位之后的状态Qn+1大于9,要对Qn加6才可以。同时,也可以在移位之前进行判断,如果移位之前的Qn数据大于4,说明Qn+1会溢出,所以可以+3再进行移位,和刚才结果是一样的。

BCD码怎么转换成标准二进制形式
首先,从BCD码的最低位开始,每4位解析为一个十进制数字的二进制表示。例如,0100表示0,1101表示1。然后,将每个这样的4位二进制数视为一个独立的部分,不需要进行任何额外的转换,因为它们已经是十进制数字对应的二进制形式。接着,将所有这样的4位二进制数按顺序拼接起来,形成最终的二进制数。如果...

十进制数(整数或小数)如何转化为二进制?给定8421BCD码如何转化为十进制...
十进制) 就是四位和8421对应在进行相加\\x0d\\x0a十进制数(整数或小数)转化为8421BCD码\\x0d\\x0a75.4=(0111 0101.0100)BCD 若将BCD码1000 0101.0101转换为十进制数如: (1000 0101.0101)BCD=85.5\\x0d\\x0a十进制数(整数或小数)转化为二进制\\x0d\\x0a整数除以2,...

相似回答