int dectobin(int n)
{
int sum = 0;
int y, x = 1; // y表示余数,x为叠加的系数
while (n != 0)
{
y = n % 2;
sum += x * y;
x *= 10;
n /= 2;
}
return sum;
}
int main ()
{
int len=0;
int OperateYear=13;
int OperateMonth=12;
int OperateDay=6;
int OperateHour=13;
int OperateMin=0;
int OperateSec=32;
unsigned int a[6];
char buf[64];
a[0] = dectobin(OperateYear);
a[1] = dectobin(OperateMonth);
a[2] = dectobin(OperateDay);
a[3] = dectobin(OperateHour);
a[4] = dectobin(OperateMin);
a[5] = dectobin(OperateSec);
sprintf(buf,"%06d%04d%05d%05d%06d%06d",a[0],a[1],a[2],a[3],a[4],a[5]);
printf("%s",buf);
uint8_t data[4];
data[0] = ((buf[0]&0x0f)<<7)|((buf[1]&0x0f)<<6)|((buf[2]&0x0f)<<5)|((buf[3]&0x0f)<<4)|((buf[4]&0x0f)<<3)|((buf[5]&0x0f)<<2)|((buf[6]&0x0f)<<1)|(buf[7]&0x0f);
data[1] = ((buf[8]&0x0f)<<7)|((buf[9]&0x0f)<<6)|((buf[10]&0x0f)<<5)|((buf[11]&0x0f)<<4)|((buf[12]&0x0f)<<3)|((buf[13]&0x0f)<<2)|((buf[14]&0x0f)<<1)|(buf[15]&0x0f);
data[2] = ((buf[16]&0x0f)<<7)|((buf[17]&0x0f)<<6)|((buf[18]&0x0f)<<5)|((buf[19]&0x0f)<<4)|((buf[20]&0x0f)<<3)|((buf[21]&0x0f)<<2)|((buf[22]&0x0f)<<1)|(buf[23]&0x0f);
data[3] = ((buf[24]&0x0f)<<7)|((buf[25]&0x0f)<<6)|((buf[26]&0x0f)<<5)|((buf[27]&0x0f)<<4)|((buf[28]&0x0f)<<3)|((buf[29]&0x0f)<<2)|((buf[30]&0x0f)<<1)|(buf[31]&0x0f);
printf("\n%02X\n",data[0]);
printf("\n%02X\n",data[1]);
printf("\n%02X\n",data[2]);
printf("\n%02X\n",data[3]);
}