缘由:程序中需要输入十六进制数再保存数据发送到下位机中。但我们在上位机中输入的其实是一串字符。我上一位同事直接用的是强转,数值不超过10还好,基本就是下位机配合上位机,但我又觉得这样的做法不好,写了一段函数用来将“字符串”保存为十六进制数。在这里就记录一下,为我刚开始的事业人生添砖加瓦
代码中直接要求只能转换4位数以下的十六进制数,直接贴代码:
int HexToInt(char *data)
{
int Values = 0;
int len,num=0;
len = strlen(data);
for(int i=len-1;i>=0;i--)
{
int value;
num++;
value = HEXchangeINT(data[i]);
switch(num)
{
case 1:
Values = Values+value;
break;
case 2:
Values = Values+value*16;
break;
case 3:
Values = Values+value*16*16;
break;
case 4: //这里限制了只能转换4位数以下的十六进制数,如果想转换更长的数据,可以在这里直接加
Values = Values+value*16*16*16;
break;
}
}
return Values;
}
//这里也限制了只能