嵌入式中RTC实时时钟用到BCD寄存器与十进制的转换,对此想要一探究底!!
#include <stdio.h>
/************************BCD码转换为十进制*****************************/
unsigned char BCD_D(int val)
{
return ((0xff&(val/16))*10+(val&0xf));
}
/************************十进制转换为BCD******************************/
int D_BCD(int val)
{
return ((val/10)*16+((val%10)&0xf));
}
void main()
{
int a=12;
int c=D_BCD(a+3);
int b=D_BCD(a);
/******************************************* 输出格式为%d*************************/
/***********************************BCD码表示的变量b在输出时的不转换与转换的区别************************************/
printf("输出格式为%%d \n");
printf("变量b不转换与转换的区别\n");
printf("b=%d ",b);
printf("b=%d\n",BCD_D(b));
/***********************************BCD码表示的变量c在输出