关于字符类型的转换

char类型的变量可以用'a'类似的赋值,也可以用0X00来赋值,现在有一字符串,如下:29299A004012345678注意它是字符串类型,现在要将它两个一组转换成0... char 类型的变量可以用 'a' 类似的赋值,也可以用 0X00来赋值,现在有一字符串,如下:
29299A004012345678 注意它是字符串类型,现在要将它两个一组转换成0X00类型然后再进行赋值,
比如开头的29可以转换成0X29再进行赋值,请详细说出转换的步骤!
如果答案满意再加200分!!!
展开
 我来答
bbydt
2013-08-08 · TA获得超过101个赞
知道答主
回答量:31
采纳率:0%
帮助的人:20.7万
展开全部
int CYiHuoDlg::String2Bytes(const char* pSrc, unsigned char* pDst, int nSrcLength)
{
for (int i = 0; i < nSrcLength; i += 2)
{
// 输出高4位
if ((*pSrc >= '0') && (*pSrc <= '9'))
{
*pDst = (*pSrc - '0') << 4;
}
else
{
*pDst = (*pSrc - 'A' + 10) << 4;
}

pSrc++;

// 输出低4位
if ((*pSrc>='0') && (*pSrc<='9'))
{
*pDst |= *pSrc - '0';
}
else
{
*pDst |= *pSrc - 'A' + 10;
}

pSrc++;
//TRACE("%s",pSrc);
pDst++;
//TRACE("%s",pDst);
}

// 返回目标数据长度
return (nSrcLength / 2);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
某M不是统称么
2013-08-07 · 超过10用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:23.7万
展开全部
比如string a=aabb
string[] b
for(int i=0;i<a.length/2;i++)
{

b[i]="0x"+a.substring(i*2,2)
}
就这个思路截取,然后你随便赋值去吧

vb用left
当然你首先得判断你的字符串是不是齐整的
追问
你这个只是变成了 "0x00" 这种,注意这是字符串,b也是字符串,我要的是将0x00 赋值给char类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chr1999
2013-08-08 · TA获得超过1056个赞
知道小有建树答主
回答量:2462
采纳率:0%
帮助的人:1241万
展开全部
char *s= "29299A004012345678";

char v[100];
int i;
for(i = 0; i < strlen(s)/2; i++)
{
v[i] = (s[2*i] > ='a'? s[2*i] -'a'+10: s[2*i] -'0')*16 + (s[2*i+1] > ='a'? s[2*i+1] -'a'+10: s[2*i+1] -'0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式