Ascii与Hex互转


uint8_t AsciiToHex(uint8_t cNum)
{
    if(cNum>='0'&&cNum<='9')
    {
         cNum -= '0';
    }
    else if(cNum>='A'&&cNum<='F')
    {
         cNum -= 'A';
         cNum += 10;
    }
    else if(cNum>='a'&&cNum<='f')
    {
         cNum -= 'a';
         cNum += 10;
    }
    return cNum;
}


uint8_t HexToAsii(int16_t val, uint8_t *pbuf)
{
int16_t val_temp=0;
uint8_t dat_len=0;
val_temp=val;
if( val<0 )
{
val_temp=~val_temp;
val_temp+=1;
pbuf[0]='-';
dat_len++;
}
if( (val_temp/10000) != 0 )
{
pbuf[dat_len++]=val_temp/10000+'0';
pbuf[dat_len++]=(val_temp/1000)%10+'0';
pbuf[dat_len++]=(val_temp/100)%10+'0';
pbuf[dat_len++]=(val_temp/10)%10+'0';
pbuf[dat_len++]=val_temp%10+'0';
}
else if( (val_temp/1000)%10 != 0 )
{
pbuf[dat_len++]=(val_temp/1000)%10+'0';
pbuf[dat_len++]=(val_temp/100)%10+'0';
pbuf[dat_len++]=(val_temp/10)%10+'0';
pbuf[dat_len++]=val_temp%10+'0';
}
else if( (val_temp/100)%10 != 0  )
{
pbuf[dat_len++]=(val_temp/100)%10+'0';
pbuf[dat_len++]=(val_temp/10)%10+'0';
pbuf[dat_len++]=val_temp%10+'0';
}
else if( (val_temp/10)%10 != 0 )
{
pbuf[dat_len++]=(val_temp/10)%10+'0';
pbuf[dat_len++]=val_temp%10+'0';
}
else
{
pbuf[dat_len++]=val_temp%10+'0';
}
return dat_len;
}


你可能感兴趣的:(c语言)