精选优质文档-倾情为你奉上二进制 转换成十进制 BCD码(加3移位法底下还附带了BCD码转二进制码转化的VHDL程序算法二进制数调整BCD码的方法是将二进制码左移8次,每次移位后都检查低四位LSD+3是否大于7,如是则加3,否则不加,高4位MSD作同样处理一、为什么左移8次原寄存器是存二进制数的,新寄存器是存十进制数的,当然要左移8次,把数据全部移进去。但这里要注意两件事,第一,如果只安排一个字节作十进制寄存器,原数据要小于 64H(即100)。第二,由于新寄存器是十进制的,要随时调整。二、检查 半字节+3 是否大于 7,是,则 +3在 51 系列里有十进制调节指令(半字节大于 9,则加 6,应该不难理解),PIC 里没有,只好采取变通的方法。检查 半字节+3 是否大于 7,也就是检查半字节是否大于 4。因为,如果大于 4(比如 5、6),下一步左移就要溢出了,所以加 3,等于左移后的加 6,起到十进制调节的作用。那为什么要绕个圈子去检测 半字节+3 是否大于 7 呢?这样程序编起来会简练一些。一个例子假如有一个八