BCD 是一位十进制数,由代表 0 到 9 的四位二进制数字表示。 当寄存器值以十六进制表示时,可以原样读取为十进制数,这对于处理十进制数的函数来说非常方便。
二进制数的 4 位可以表示为 0 到 15,但只有低 10 位被视为有效数字。
例如,假设运算的结果是十进制数“37”。 由于它是作为二进制数存储在实际寄存器中的,“0010 0101”就是寄存器值。 另一方面,在使用集成开发工具或液晶显示器显示人类可以确认的数字时,十六进制数比二进制数更容易看清,因此以十六进制“25”显示。 但是,这样做很不方便,因为十六进制数“25”很难理解为十进制数“37”。 因此,微机的内部电路将十六进制数“25”转换为“37”。 该寄存器存储的是十六进制数“37”,即二进制数“0011 0111”。 对外显示“0011 0111”时,原样显示为“37”,所以一看就知道运算结果是十进制数“37”。
BCD是什么
BCD是一个十进制数的数字,表示从0到9的二进制四位数。下表显示了从0到15的十进制和相应的二进制、十六进制和BCD。


上表中只显示了十进制的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。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/40880.html