/**************************************************************************
** 函数名称: mLongToBCD
** 功能描述: 将BCD码<十进制>转换成长整型数据<十六进制>
** 输 入:,* BCDPower:BDC码指针
**
** 输 出:LongPower:转换得到的长整型数据
**-------------------------------------------------------------------------
***************************************************************************/
unsigned long mBCDToLong (unsigned char * BCDPower) {
unsigned long LongPower;
unsigned long LongTemp;
BCDPower[0]=(BCDPower[0]&0x0f) + ((BCDPower[0]>>4)& 0xf)*10;
BCDPower[1]=(BCDPower[1]&0x0f) + ((BCDPower[1]>>4)& 0xf)*10;
BCDPower[2]=(BCDPower[2]&0x0f) + ((BCDPower[2]>>4)& 0xf)*10;
BCDPower[3]=(BCDPower[3]&0x0f) + ((BCDPower[3]>>4)& 0xf)*10;
LongPower=BCDPower[0];
LongTemp=BCDPower[1];
LongPower+=LongTemp*100;
LongTemp=BCDPower[2];
LongPower+=LongTemp*10000;
LongTemp=BCDPower[3];
LongPower+=LongTemp*1000000;
return LongPower;
}
/**************************************************************************
** 函数名称: mLongToBCD
** 功能描述: 将长整型数据<十六进制>转换成BCD码<十进制>
** 输 入:LongPower:要转换的长整型数据,* BCDPower:BDC码指针
**-------------------------------------------------------------------------
***************************************************************************/
void mLongToBCD(unsigned long LongPower, unsigned char * BCDPower){
unsigned char Temp;
char TempCounter;
for (TempCounter=0;TempCounter<4;TempCounter++){
BCDPower[TempCounter]=0;
BCDPower[TempCounter]|=(unsigned char)(LongPower%10);
Temp=(unsigned char)(LongPower%100/10);
BCDPower[TempCounter]|=Temp<<4;
LongPower/=100;
}
}
文章评论(0条评论)
登录后参与讨论