hur.cn - 华软网

 热门搜索

十六进制字符串怎么转换成对应的十六进制数?

  作者:未知    来源:网络    更新时间:2011/5/31
如题,比如说字符串“01”—>01,"02"->02,然后可以进行十六进制加减运算,01+02=03这种效果?试了一些办法不管用,请教怎么实现?
---华软 网友回答---
_atoi_l
---华软网友回复---
举个例子,自己想办法展开
C++">
char x;
int i;
...
switch(x)
{
case A:
i = 0xA;
break;
...
}

---华软网友回复---
少了一对引号,不好意思
---华软网友回复---
long int strtol(const char *nptr,char **endptr,int base);
---华软网友回复---
建议你看看这个帖子http://topic.csdn.net/u/20110409/10/366cbbc7-2e11-4f09-b7f6-db8677a58973.html,我给一个帖子写了段代码16进制字符串转16进制数字的,地址如下:http://download.csdn.net/source/3060836,直接下载不用资源分。有什么问题了可以给我留言
---华软网友回复---
刚才写的没有插入超链接修改一下:建议你看看这个帖子http://topic.csdn.net/u/20110409/10/366cbbc7-2e11-4f09-b7f6-db8677a58973.html ,我给一个帖子写了段代码16进制字符串转16进制数字的,地址如下:http://download.csdn.net/source/3060836,直接下载不用资源分。有什么问题了可以给我留言
---华软网友回复---
引用楼主 lijunda213 的回复:
如题,比如说字符串“01”—>01,"02"->02,然后可以进行十六进制加减运算,01+02=03这种效果?试了一些办法不管用,请教怎么实现?

_tcstoul(...,...,16);
---华软网友回复---
C++">
//字符串转换成16进制显示
int CSCommTestDlg::String2Hex(CString str, CByteArray &senddata)
{
int hexdata,lowhexdata;
int hexdatalen=0;
int len=str.GetLength();
senddata.SetSize(len/2);
for(int i=0;i<len;)
{
char lstr,hstr=str[i];
if(hstr==' ')
{
i++;
continue;
}
i++;
if(i>=len)
break;
lstr=str[i];
hexdata=ConvertHexChar(hstr);
lowhexdata=ConvertHexChar(lstr);
if((hexdata==16)||(lowhexdata==16))
break;
else 
hexdata=hexdata*16+lowhexdata;
i++;
senddata[hexdatalen]=(char)hexdata;
hexdatalen++;
}
senddata.SetSize(hexdatalen);
return hexdatalen;
}

//这是一个将字符转换为相应的十六进制值的函数
//功能:若是在0-F之间的字符,则转换为相应的十六进制字符,否则返回-1
char CSCommTestDlg::ConvertHexChar(char ch) 
{
if((ch>='0')&&(ch<='9'))
return ch-0x30;
else if((ch>='A')&&(ch<='F'))
return ch-'A'+10;
else if((ch>='a')&&(ch<='f'))
return ch-'a'+10;
else return (-1);
}


---华软网友回复---
atoi
---华软网友回复---
LZ意思很明确:
1,去掉“”,
2,十六制加减法。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。