有没有把字符转换成相应的16进制的办法?

danielhf 2003-11-10 11:54:37
我怎样把16进制的字符转换成16进制数呢?
比方说"D5C5", 把 'D' 解析成13, 'C' 解析成12等..
...全文
86 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wolf0403 2003-11-11
  • 打赏
  • 举报
回复
inline int ToDigit(char c)
{
if ( c >= 'A' && c <= 'F' )
return c - 'A' + 10;
if ( c >= 'a' && c <= 'f')
return c - 'a' + 10;
}
这么简单的。。。唉
qibo999 2003-11-11
  • 打赏
  • 举报
回复
char c='C';
switch(c)
{
case 'A':
break;
case 'a':
break;
case 'B':
break;
case 'b':
break;
....

}
呵呵,很笨的方法但简单,因为有限数据嘛。
Bandry 2003-11-11
  • 打赏
  • 举报
回复
如果仅仅是单个字符当然很简单啦,我想楼主是要整个字符串吧
得自己写个函数。随便写的
int a16toi(char *p)
{
int nLen = strlen(p);
int nValue = 0;

char *pchar = NULL;
int i16 = 1, nTemp = 0;
for (pchar = p + nLen - 1; pchar >= p; --pchar)
{
if ( (*pchar >= '0' && *pchar <= '9') )
{
nTemp = *pchar - '0';
nValue += nTemp * i16;
i16 *= 16;
}
else if ( (*pchar >= 'A' && *pchar <= 'F') )
{
nTemp = *pchar - 'A' + 10;
nValue += nTemp * i16;
i16 *= 16;
}
else if ( (*pchar >= 'a' && *pchar <= 'f') )
{
nTemp = *pchar - 'a' + 10;
nValue += nTemp * i16;
i16 *= 16;
}
else
{
nValue = 0;
return nValue;
}
}

return nValue;
}

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧