虽然到处都可以复制到,但还是把我自己用的代码分享出来,然后可以帮助到人。
/**************************************************
16进制转ASCII
***************************************************/
unsigned char Hex_To_Ascii(unsigned char Data)
{
if(Data < 10)
{
return (Data+0x30);
}
else
{
return (Data+0x37);
}
}
/**************************************************
ASCII转16进制
***************************************************/
unsigned char Ascii_To_Hex(unsigned char Data)
{
if(Data < 0x40)
{
return (Data-0x30);
}
else
{
return (Data-0x37);
}
}
/**************************************************
16进制转两个ASCII
高4位转1个,低四位转1个
***************************************************/
unsigned int Hex_To_TwoAscii(unsigned char Data)
{
unsigned int TwoData;
unsigned char DataTemp[2];
DataTemp[0]=(Data&0xf0)>>4;
DataTemp[1]=Data&0x0f;
if(DataTemp[0] < 10)
{
DataTemp[0]= DataTemp[0]+0x30;
}
else
{
DataTemp[0]= DataTemp[0]+0x37;
}
if(DataTemp[1] < 10)
{
DataTemp[1]= DataTemp[1]+0x30;
}
else
{
DataTemp[1]= DataTemp[1]+0x37;
}
TwoData=DataTemp[0]<<8;
TwoData=TwoData | DataTemp[1];
return TwoData;
}
/**************************************************
两个ASCII转一个char
第1个为高4位,第2个为低四位
***************************************************/
unsigned char TwoAscii_To_HEX(unsigned char TempH,unsigned char TempL)
{
unsigned char HexData;
if(TempH<0x40)
{
TempH=TempH-0x30;
}
else
{
TempH=TempH-0x37;
}
if(TempL<0x40)
{
TempL=TempL-0x30;
}
else
{
TempL=TempL-0x37;
}
TempH=TempH & 0x0F;
TempL=TempL & 0x0f;
HexData=(TempH<<4) | TempL;
return HexData;
}