/*********************************************
十进制转十六进制
**********************************************/
char buffer [33]; //用于存放转换好的十六进制字符串,可根据需要定义长度
char * inttostr(int aa)
{
sprintf(buffer, "%x", aa);
return (buffer);
}
char *strupr(char *s)
{
int i;
for (i = 0; s[i] != '\0'; i++) {
if (s[i] >= 'a' && s[i] <= 'z') {
s[i] += 'A' - 'a';
}
}
return s;
}
unsigned long str2hex(char* str)
{
unsigned long var=0;
unsigned long t;
int len = strlen(str);
if (var > 8) //最长8位
return -1;
strupr(str);//统一大写
for (; *str; str++)
{
if (*str>='A' && *str <='F')
t = *str-55;//a-f之间的ascii与对应数值相差55如'A'为65,65-55即为A
else
t = *str-48;
var<<=4;
var|=t;
}
return var;
}
评论0