示例如下
转换为十六进制
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef unsigned char u8;
typedef unsigned short u16;
u16 Str_ConvertTo_Dec(const char *str)
{
u8 i = 0;
u8 tmp;
u16 num_hex,hex_mod;
u8 len = strlen(str); /*string length*/
num_hex = 0;
hex_mod = 1;
for (i = 1; i <= len; i++)
{
if ((str[len - i] >= '0' && str[len - i] <= '9'))
{
tmp = str[len - i] - '0';
num_hex += tmp*hex_mod;
hex_mod *= 16;
}
else
{
num_hex = 0;
}
}
return num_hex;
}
void main()
{
u16 a = 0;
a = Str_ConvertTo_Dec("123");
printf("a = 0x%x\r\n",a);
system("pause");
}
运行结果:
a = 0x123
如果是转换为十进制将hex_mod *= 16;中的16进制改为10进制即可。
——————
2019.05.20
23:05