数字用bcd编码存储(转bcd编码)
#include <stdio.h>
#include <stdarg.h>
int ToBCD(char *bcd, int len, ...)
{
va_list valist;
va_start(valist, len); //初始化valist
for (int i = 0; i < len; i++)
{
int val = va_arg(valist, int); //对每个可选参数,读取int的参数
char h = val / 10;
char l = val % 10;
bcd[i] = (h << 4) | l;
}
va_end(valist);
return 0;
}
int main()
{
char strtime[7] = {0};
ToBCD(strtime, 6, 21, 05, 17, 9, 52, 00);
for(int i = 0; i < 6; i ++)
{
printf("%02X ", strtime[i]);
}
printf("\n");
return 0;
}