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语言函数,用于ASCII字符到十六进制和十六进制数值到ASCII字符串的转换。`AsciiToHex`函数将ASCII字符转换为对应的十六进制数字,而`HexToAsii`函数将16位整数转换为ASCII表示的字符串,包括负数处理。
3703

被折叠的 条评论
为什么被折叠?



