关于字符类型的转换
char类型的变量可以用'a'类似的赋值,也可以用0X00来赋值,现在有一字符串,如下:29299A004012345678注意它是字符串类型,现在要将它两个一组转换成0...
char 类型的变量可以用 'a' 类似的赋值,也可以用 0X00来赋值,现在有一字符串,如下:
29299A004012345678 注意它是字符串类型,现在要将它两个一组转换成0X00类型然后再进行赋值,
比如开头的29可以转换成0X29再进行赋值,请详细说出转换的步骤!
如果答案满意再加200分!!! 展开
29299A004012345678 注意它是字符串类型,现在要将它两个一组转换成0X00类型然后再进行赋值,
比如开头的29可以转换成0X29再进行赋值,请详细说出转换的步骤!
如果答案满意再加200分!!! 展开
3个回答
展开全部
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);
}
{
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);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如string a=aabb
string[] b
for(int i=0;i<a.length/2;i++)
{
b[i]="0x"+a.substring(i*2,2)
}
就这个思路截取,然后你随便赋值去吧
vb用left
当然你首先得判断你的字符串是不是齐整的
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类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询