else if (fabs(d)<1.0e-6 || fabs(d)>1.0e9)
sprintf(str,"%e",d);
//剩余部分直接用小数点形式进行输出
else
sprintf(str,"%f",d);
}
}
return str;
}
/*从 16 进制整数的字符串表达方式转换成无符号整数*/
static unsigned parse_hex4(const char *str)
{
//对字符串中每个字符逐个分析。
unsigned h=0;
//判断第一个字节
if (*str>='0' && *str<='9') //判断字符是否在 0~9
h+=(*str)-'0';
else if (*str>='A' && *str<='F') //判断是否在 A~F 中
h+=10+(*str)-'A'; //十六进制转十进制 10+字母对应字母代表的数字
else if (*str>='a' && *str<='f') //判断是否在 a~f 中
h+=10+(*str)-'a'; //十六进制转十进制 10+字母对应字母代表的数字
else return 0;
//判断第二个字节
h=h<<4;str++;
if (*str>='0' && *str<='9') //判断字符是否在 0~9
h+=(*str)-'0';
else if (*str>='A' && *str<='F') //判断是否在 A~F 中
h+=10+(*str)-'A';//十六进制转十进制 10+字母对应字母代表的数字
else if (*str>='a' && *str<='f') //判断是否在 a~f 中
h+=10+(*str)-'a'; //十六进制转十进制 10+字母对应字母代表的数字
else return 0;
//判断第三个字节
h=h<<4;str++;
if (*str>='0' && *str<='9') //判断字符是否在 0~9
h+=(*str)-'0';
else if (*str>='A' && *str<='F') //判断是否在 A~F 中
h+=10+(*str)-'A'; //十六进制转十进制 10+字母对应字母代表的数字
else if (*str>='a' && *str<='f') //判断是否在 a~f 中
h+=10+(*str)-'a'; //十六进制转十进制 10+字母对应字母代表的数字
else return 0;
//判断第四个字节
h=h<<4;str++;
if (*str>='0' && *str<='9') //判断字符是否在 0~9
评论0