我要把一个16进制转换成相应的字符,如下:
char bbuf = (char) 0x4c;没问题,但怎么把一个字符串型的转过来呢,如下:int a = atoi("0x4c"); //这个不行
char bbuf = (char) a;不行,应该怎么改呢?
char bbuf = (char) 0x4c;没问题,但怎么把一个字符串型的转过来呢,如下:int a = atoi("0x4c"); //这个不行
char bbuf = (char) a;不行,应该怎么改呢?
atoi是把字符串转为整形,你这样会得到什么?a=0?可以用CString.GetBuffer得到字符串里的字符
我的程序是SDK的,用不了CString。
sscanf("0x10","0x%x",&a);
{
int iResult=0;
char bChar;
int iValue; if(!buf)
return -1;
int len=strlen(buf);
for(int i=0;i<len;i++)
{
iResult*=16;
bChar=buf[i];
if((bChar>='0') && (bChar<='9'))
{
iValue=bChar-'0';
}
else if((bChar>='A') && (bChar<='F'))
{
iValue=bChar-'A'+10;
}
else if((bChar>='a') && (bChar<='f'))
{
iValue=bChar-'a'+10;
}
else
break;
iResult=iResult+iLow;
}
return iResult;
}
base换成0x10就行