C++,16进制转化问题,字符串转化成数字

char*b='01f0'转化成数字inta=???有一个字符串是01f0把它按16进制转化成10进制。思路是先转化成intw=0x01f0,再转成10进制inta=??... char * b='01f0'

转化成数字 int a= ???
有一个字符串是 01f0

把它按16进制转化成10进制。

思路是先转化成 int w=0x01f0, 再转成10进制 int a= ??
展开
 我来答
bankqd
2009-10-29 · TA获得超过1044个赞
知道答主
回答量:72
采纳率:0%
帮助的人:67.1万
展开全部
方法1:
#include <stdio.h>
int main()
{
char szValue[] = "01f0";
int nValude = 0;
sscanf(szValue,"%x",&nValude);
printf("%d\n",nValude);
return 0;
}

主要用到sscanf这个库函数:
函数名: sscanf
功 能: 执行从字符串中的格式化输入
用 法: int sscanf(char *string, char *format[,argument,...]); //%x就是我们要格式化的类型,即输出十六进制

方法2:
#include <stdio.h>
#include <stdlib.h>//strtol头文件

int main()
{
char *p="01f0";
char *str;
int i = (int)strtol(p, &str, 16);//十六进制
printf("%d\n",i);
return 0;
}
主要用到strtol这个库函数,它的使用方法是:

函数名: strtol
功 能: 将串转换为长整数
用 法: long strtol(char *str, char **endptr, int base);//base指明我们要转换为几进制数

参考资料: http://blog.csdn.net/delphiwcdj/archive/2009/10/10/4649854.aspx

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4fee1d0
2009-10-29 · TA获得超过340个赞
知道小有建树答主
回答量:411
采纳率:0%
帮助的人:276万
展开全部
不明你什么意思,能再清晰地描述一下吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式