如题 思路来源:将一个时间数晚上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
;
}
转载请注明原文地址:https://tech.qufami.com/read-24722.html