//十六进制字符串转十进制数字
2015-08-08 16:30
477 查看
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;
}
{
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;
}
相关文章推荐
- Python中的弧度转化以及三角函数
- 136.Single Number
- 关于C++中的虚拟继承的一些总结
- 防止加入域主机脱离域的控制(管理员权限)
- ANSCII码和BCD码互转
- 英文文献中缩写的含义(i.e. i.i.d.)
- android kl文件
- 【git】git bash 启动默认路径
- django book学习笔记――表单
- python3使用ltp语言云
- 【UVA】11992 - Fast Matrix Operations(段树模板)
- More Effective C++:Item 27
- HDU2542 矩形A + B
- HDU - 1312 Red and Black (dfs)
- dojo enhancedgrid问题:比如说5行数据只能显示4行,10行数据显示7行
- A1080. Graduate Admission (30)
- 线程通信2
- java 排序
- Scala 深入浅出实战经典 第80讲:scala中List的泛型分析以及::类和Nil对象
- leetcode 100 —— Same Tree