贴一个十六进制的字符串转十进制的函数

y_pro 2001-07-16 12:37:03
这个是我刚才无聊的时候写的,假定输入是合法的十六进制的字符串,最大为8个(对应32
位整数),没有做“235476afuoiuyt”之类的输入的处理,如果要做的就自己改,很容易
的。
经过我的测试,比sscanf(库函数,可完成同样功能)要快4倍,测试方法是对同一批输入数
据连续运行10000次后的时间比较。

BOOL HexToDec( LPCTSTR shex,int& idec )
{
int i,mid;
int len = lstrlen( shex );

if( len>8 )
return FALSE;

mid = 0; idec = 0;
for( i=0;i<len;i++ )
{
if( shex[i]>='0'&&shex[i]<='9' )
mid = shex[i]-'0';
else if( shex[i]>='a'&&shex[i]<='f' )
mid = shex[i] -'a' +10;
else if( shex[i]>='A'&&shex[i]<='F' )
mid = shex[i] -'A' +10;
else
return FALSE;

mid <<= ((len-i-1)<<2);
idec |= mid;

}

return TRUE;
}

好久没写代码了,有点儿手生了 :(
...全文
297 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
roaringwind 2001-09-08
  • 打赏
  • 举报
回复
很不错,我用了,这在数制转换时很有用
◆啸峰工作室◆ 欢迎前来交流
http://roaringwind.best.163.com
串口通迅(编程源码)、串口调试助手、端口网络通信技术,VC/C编程,移动机器人控制相关技术,Matlab仿真及数据处理
SCUM 2001-09-08
  • 打赏
  • 举报
回复
意义何在?
cmpp 2001-09-07
  • 打赏
  • 举报
回复
我来学习一下!
Richard2001 2001-09-07
  • 打赏
  • 举报
回复
有没有十进制的数字转十六进制字符串的函数?
如:1转成01,10转成0A,...,255转成FF.
ylp9999 2001-07-16
  • 打赏
  • 举报
回复
靠,我家母鸡又下蛋了
风中老长 2001-07-16
  • 打赏
  • 举报
回复
很不错的教材!

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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