请问 16进制字符串转换问题
把 string“0xFF”转换变成int255请高手指教一下 本帖最后由 275891381 于 2016-11-21 13:56 编辑
自己写一个不就可以了,
String inString []= {"0xff","a0","AA"}; // 用来储存接收到的内容
void setup()
{
Serial.begin(9600);
}
void loop()
{
for(int i=0;i<3;i++)
Serial.println(ChangeNum(inString));
delay(1000);
}
int ChangeNum(String str)
{
charrevstr={0};//根据十六进制字符串的长度,这里注意数组不要越界
int num={0};
int count=1,result=0,flag=0;;
if(str=='0'&&(str=='X'||str=='x'))
flag=2;
for(int i=str.length()-1;i>=flag;i--)
{
revstr = str;
if ((revstr>='0') && (revstr<='9'))
num=revstr-'0';
else if ((revstr>='a') && (revstr<='f'))
num=revstr-'a'+10;
else if ((revstr>='A') && (revstr<='F'))
num=revstr-'A'+10;
else
num=0;
result=result+num*count;
count=count*16;
}
return result;
} 感谢回复。。。有个更快的方法。。交流一下。。如下
myint = strtol(mystr.c_str(), NULL, 16);
mystr.c_str()这个是转换char。。这个函数要用这个类型
页:
[1]