/*********************************************************
* 函数说明:从字符串数据转换为十六进制数据
* 入口参数:Hex_str 字符串指针 len 字符串长度
* 出口参数:Hex_data 十六进制数据首地址
* 返回值 :0 : 成功 1:失败
* 修改时间:2018.7.20
* 修改人 :ZZH
**********************************************************/
int HexStr_To_Hex(unsigned char *Hex_data, int *Hex_len, const char *Hex_str, unsigned int Str_len)
{
int index = 0;
if(Str_len % 2){ // 不合法
log_printf(LOG_DEBUG|LOG_FILE, "Debug -----index = %d ------%d",Str_len, __LINE__);
return 1;
}
while(*Hex_str)
{
if((*Hex_str >= '0' && *Hex_str <= '9')){
Hex_data[index] = ((*Hex_str++)-'0')<<4;
}else if((*Hex_str >= 'A' && *Hex_str <= 'F')){
Hex_data[index] = ((*Hex_str++)-'A'+10)<<4;
}else if((*Hex_str >= 'a' && *Hex_str <= 'f')){
Hex_data[index] = ((*Hex_str++)-'a'+10)<<4;
}
if((*Hex_str >= '0' && *Hex_str <= '9')){
Hex_data[index++] += (*Hex_str++)-'0';
}else if((*Hex_str >= 'A' && *Hex_str <= 'F')){
Hex_data[index++] += (*Hex_str++)-'A'+10;
}else if((*Hex_str >= 'a' && *Hex_str <= 'f')){
Hex_data[index++] += (*Hex_str++)-'a'+10;
}
}
*Hex_len = index;
return 0;
}
字符串数据转换为十六进制
最新推荐文章于 2025-07-09 15:04:38 发布