本文主要是介绍十进制转8421BCD码详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如题
思路来源:将一个时间数晚上23点18分(2318)转化为8421BCD码写入到设备中。
那自然想得到2318的转换码是:0010 0011 0001 1000;
那采用最原始的按位解析得到各个数字即可。
uint16 GetWordValue_Dec2BCD(uint16 u16Value)
{uint16 u16ValueTotal = 0;uint16 Word1, Word2, Word3, Word4;Word1 = ((u16Value / 1000) <<12) & 0xF000;Word2 = ((u16Value / 100 %10) <<8) & 0x0F00;Word3 = ((u16Value / 10 %10) <<4) & 0x00F0;Word4 = (u16Value %10) & 0x000F;ValueTotal = (Word1 | Word2 | Word3 | Word4);printf("BCD = %x", u16ValueTotal);return u16ValueTotal ;
}
这篇关于十进制转8421BCD码详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!