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= ?? 展开
转化成数字 int a= ???
有一个字符串是 01f0
把它按16进制转化成10进制。
思路是先转化成 int w=0x01f0, 再转成10进制 int a= ?? 展开
2个回答
展开全部
方法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指明我们要转换为几进制数
#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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不明你什么意思,能再清晰地描述一下吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询