关于转换的两个问题
第一个问题:
char src[6];
src[0] = '0';
src[1] = 'x';
src[2]= '\xB8';
src[3]= '\x0C';
src[4]= '\xD0';
src[5]= 0x00;
String s1 = String(src);
String s2 = "0xB80CD0";
int iVlaue1=StrToInt(s1);//转换异常出错
int iVlaue2=StrToInt(s2);//得到正确整型值12061904
第二个问题:
string s1=....//略去
String str2 = IntToHex((str1[1]),2);
执行上属语句后str2的值为FFFFFFBD,而我只想得到BD,请问该怎么做。
其中str1[1]调试信息如下:
Evaluate窗口显示: Result :'\xFFFFFFBD'
inspect窗口显示: '\xBD' 189
到底str1[1]中表示的是哪个字符?
[解决办法]
第一个问题,0xB8 不等于 "B8", src[2]= '\xB8'相当于:src[2] = 0xB8,你只是把这个字节赋给src[2]了,并不是"B8"这个字符串。所以后面的转换要失败的。正确的应该是:
char src[] = "0xB80CD0";
或者:
char src[] = { '0', 'x', 'B', '8', '0', 'C', 'D', '0' };
然后:
String s1 = String(src);
int iVlaue1=StrToInt(s1);