原创 数值转换参考

2009-5-1 17:53 1419 11 11 分类: MCU/ 嵌入式
/**************************************************************************
** 函数名称:  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;
  }
 }
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
11
关闭 站长推荐上一条 /3 下一条