什么是 BCD(二进制编码的十进制)

您所在的位置:网站首页 精确度的常用表示方法是什么意思 什么是 BCD(二进制编码的十进制)

什么是 BCD(二进制编码的十进制)

2024-07-14 07:09| 来源: 网络整理| 查看: 265

BCD 是一位十进制数,由代表 0 到 9 的四位二进制数字表示。 当寄存器值以十六进制表示时,可以原样读取为十进制数,这对于处理十进制数的函数来说非常方便。

二进制数的 4 位可以表示为 0 到 15,但只有低 10 位被视为有效数字。

例如,假设运算的结果是十进制数“37”。 由于它是作为二进制数存储在实际寄存器中的,“0010 0101”就是寄存器值。 另一方面,在使用集成开发工具或液晶显示器显示人类可以确认的数​​字时,十六进制数比二进制数更容易看清,因此以十六进制“25”显示。 但是,这样做很不方便,因为十六进制数“25”很难理解为十进制数“37”。 因此,微机的内部电路将十六进制数“25”转换为“37”。 该寄存器存储的是十六进制数“37”,即二进制数“0011 0111”。 对外显示“0011 0111”时,原样显示为“37”,所以一看就知道运算结果是十进制数“37”。

BCD用于时钟和日历功能。 日期和时间的运算本身是以二进制数进行的,但是将运算结果用BCD保存在寄存器中,将其作为时间和日期显示在外部时,具有可以直接利用寄存器内容的优点。 

BCD是什么

BCD是一个十进制数的数字,表示从0到9的二进制四位数。下表显示了从0到15的十进制和相应的二进制、十六进制和BCD。

 

十进制数从0到9,与十六进制数字相同,因此不需要转换为BCD。但是,十进制数的10到15,在十六进制数中会变成英文字,所以必须转换。例如,十进制数字的“10”在十六进制数字中是“A”。 如果你把它转换成BCD,它会变成10,上升一个数量级。由于二进制数的四位数只能表示为9,所以我们将进一步添加二进制数的四位数,并用八位数表示。 

上表中只显示了十进制的15个数字,但是比这个更大的数字也被转换成同样的方式。例如,十进制的20是十六进制的14,但在BCD中转换为20。另外,十进制数的30是十六进制的1E,但在BCD中转换为30。

如何转换为BCD

如何转换为BCD,相对简单。只要根据数值的大小加上6的倍数就可以了。检查运算结果,如果数量大于9,则加6。如果不到9,我什么都不会做。

 要在BCD中表示大于9的数字,需要二进制数的八位数,因此前四位数字将被添加。在大于9的数字上加上6,必定会在第四位数发生进位。这个进位叫半进位。在微型计算机内部执行BCD转换操作时,通过检查半进位来确定大于9的数。

半进位是CCR(Condition Code Register:条件码寄存器)的H(半进位)。

您可以通过将6添加到十进制的9到15,即十六进制的A到F,将其转换为BCD。此外,更大的数字转换方法如下表所示。这里显示的是十进制数的10到39(十六进制的A到27)。十进制数的10到19的情况下加6,20到29的情况下加12,30到39的情况下加18。这样,通过根据数量的大小加上6的倍数,就可以很容易地转换成BCD。

 例如,考虑一下微型计算机中内置的实时时钟(以下简称RTC:Real Time Clock)处理的数字。 RTC是一种时间时钟定时器,可实现时钟和日历功能。计算分钟和秒的最大值为59。时间最大值为12或24。因此,您可以将转换为BCD的最大值限制为59或24。也就是说,即使用普通BCD表示2位数,也可以用6位或7位来表示,而不需要仅限于RTC的所有8位。此外,您还可以在1位和10位之间进行转换,从而优化硬件逻辑规模。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3