BCD码如何进行加减法

 我来答
风中一缕熏
高粉答主

2022-08-23 · 醉心答题,欢迎关注
知道答主
回答量:68
采纳率:0%
帮助的人:2.1万
展开全部

加法:

由于编码是将每个十进制数用一组4位二进制数来表示,因此,若将这种BCD码直接交计算机去运算,由于计算机总是把数当作二进制数来运算,所以结果可能会出错。例:用BCD码求38+49。

解决的办法是对二进制加法运算的结果采用"加6修正,这种修正称为BCD调整。即将二进制加法运算的结果修正为BCD码加法运算的结果,两个两位BCD数相加时,对二进制加法运算结果采用修正规则进行修正。

修正规则:

1、如果任何两个对应位BCD数相加的结果向高一位无进位,若得到的结果小于或等于9,则该位不需修正;若得到的结果大于9且小于16时,该位进行加6修正。

2、如果任何两个对应位BCD数相加的结果向高一位有进位时(即结果大于或等于16,注意不是修正时的进位),该位进行加6修正。

3、低位修正结果使高位大于9时,高位进行加6修正。

减法:两个组合BCD码进行减法运算时,当低位向高位有借位时,由于"借一作十六"与"借一作十"的差别,将比正确的结果多6,所以有借位时,可采用"减6修正法"来修正。

两个BCD码进行加减时,先按二进制加减指令进行运算,再对结果用BCD调整指令进行调整,就可得到正确的十进制运算结果。 

加法例子:

1、用BCD码求35+21:35-> 0011 0101+;21-> 0010 0001=;0101 0110->56

注意:0101+0001并没有满足上述3条规则,同时0011+0010也没有满足上述3条规则,所以结果不作处理。

2、BCD码求25+37:25->0010 0101+;37->0011 0111=;0101 1100+(低位0101+0111=1100->12>9所以需要调整);06-> 0110=;0110 0010->62

注意:在给低位加0110调整时也有向高位进位发生,但是这是在调整时的进位,故不做处理。

扩展资料:

BCD码与十进制数的转换

BCD码与十进制数的转换关系很直观,相互转换也很简单,将十进制数75.4转换为BCD码:7->0111,5->0101,4->0100所以拼成8421BCD码的结果是:

(0111 0101.0100)BCD;若将BCD码1000 0101.0101转换为十进制数:1000->8,0101->5,0101->5所以结果是:(85.5)D。

注意:同一个8位二进制代码表示的数,当认为它表示的是二进制数和认为它表示的是二进制编码的十进制数时,数值是不相同的。

例如:00011000,当把它视为二进制数时,其值为24;但作为2位BCD码时, 其值为18。

例如:00011100,如将其视为二进制数,其值为28,但不能当成BCD码,因为在8421BCD码中,它是个非法编码 。

参考资料:百度百科—8421BCD码

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2023-02-26 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部

BCD 码的种类,是有很多的。

有些 BCD 码,属于“无权码”,根本就没有运算的功能。

如果是 8421BCD 码,就可以像普通二进制数一样,相加减。

人工来做算术运算,还是比较简单的。

如果是用计算机来加减,事后,就必须进行“十进制调整”,才能得到 BCD 码的结果。

一种进行“十进制调整”的电路如下:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式