帮忙分析段代码。
char temp[20];
month = (ord(msg_id_int[0]) >> 4) & 0x0f;
day = (ord(msg_id_int[0]) & 0x0f) * 2 + ((ord(msg_id_int[1]) >> 7) & 0x01);
hour = (ord(msg_id_int[1]) >> 2) & 0x1f;
minute = (ord(msg_id_int[1]) & 0x03) * 16 + ((ord(msg_id_int[2]) >> 4) & 0x0f);
second = (ord(msg_id_int[2]) & 0x0f) * 4 + ((ord(msg_id_int[3]) >> 6) & 0x03);
smc = (ord(msg_id_int[3]) & 0x3f) * 0x10000 + ord(msg_id_int[4]) * 0x100 + ord(msg_id_int[5]);
seqidint = ord(msg_id_int[6]) * 0x100 + ord(msg_id_int[7]);
sprintf(temp,"%02d%02d%02d%02d%02d%05d%05d",month,day,hour,minute,second,smc,seqidint);
return temp;