码迷,mamicode.com
首页 > 其他好文 > 详细

//十六进制字符串转十进制数字

时间:2015-08-08 18:01:19      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

int ChangeNum(char* str)
{
char revstr[16]={0}; //根据十六进制字符串的长度,这里注意数组不要越界
int num[16]={0};
int count=1;
int result=0;
int length;

length = strlen(str);

memcpy(revstr,"0x",2);
memcpy(revstr + 2,str,length);

length += 2;

for (int i=length-1;i>=0;i--)
{
if ((revstr[i]>=‘0‘) && (revstr[i]<=‘9‘))
num[i]=revstr[i]-48;//字符0的ASCII值为48
else if ((revstr[i]>=‘a‘) && (revstr[i]<=‘f‘))
num[i]=revstr[i]-‘a‘+10;
else if ((revstr[i]>=‘A‘) && (revstr[i]<=‘F‘))
num[i]=revstr[i]-‘A‘+10;
else
num[i]=0;
result=result+num[i]*count;
count=count*16;//十六进制(如果是八进制就在这里乘以8)
}
return result;
}

//十六进制字符串转十进制数字

标签:

原文地址:http://www.cnblogs.com/dengpeng1004/p/4713390.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!