之前有遇到一个固定变量需要转换成16进制的int类型,网上找的资料比较少。思考良久,还是自己专门写了针对此的代码,如下:
#include "stdio.h"
#include "string.h"
int main()
{
int i;
unsigned char string[8] = "1018B002";
unsigned char tempargv[8];
int hex,temp;
memcpy(tempargv, string, 8);
for(i=0;i<8;i++)
{
if (tempargv[i] >= '0' && tempargv[i] <= '9')
{
temp = (tempargv[i] - '0') & 0x0000000f;
}
else if (tempargv[i] > '9' && tempargv[i] < '16')
{
temp = (tempargv[i] - 'A' + 10) & 0x0000000f;
}
hex = temp |(hex << 4);
}
printf("hex = 0x%x\r\n", hex);
system("pause");
return 0;
}
用此方法可以很简单的将固定4字节字符串转换为16进制的int类型