首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

C语言经典算法之16进制10进制

C语言经典算法之16进制10进制

自己写一个转换函数不就行了?


//返回16进制字符串s对应的整数值,遇到任何一个非法字符都返回-1
int HexToDec(char *s)
{
         char*p = s;
         //空串返回0
         if(*p== '\0')
                   return0;
         //忽略开头的'0'字符
         while(*p== '0')
                   p++;
         intdec = 0;
         charc;
         //循环直到字符串结束。
         while(c= *p++)
         {
                   //dec16
                   dec<<= 4;
                   //数字字符。
                   if(c>= '0' && c <= '9')
                   {
                            dec+= c - '0';
                            continue;
                   }
                   //小写abcdef
                   if(c>= 'a' && c <= 'f')
                   {
                            dec+= c - 'a' + 10;
                            continue;
                   }
                   //大写ABCDEF
                   if(c>= 'A' && c <= 'F')
                   {
                            dec+= c - 'A' + 10;
                            continue;
                   }
                   //没有从任何一个if语句中结束,说明遇到了非法字符。
                   return-1;
         }
         //正常结束循环,返回10进制整数值。
         returndec;
}
返回列表