涛2014/8/20的专栏

记录自己解决过的一些问题,一点点积累

c语言字符串转换为16进制和10进制数字

字符串转换为16进制或者10进制:1、使用自己编写的函数。2、使用库函数。

将字符串转换为16进制两种方法的代码:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>


 int HexStr2Int(char *buf)
 {
int result = 0;
int tmp;
int len,i;


len = strlen(buf);
printf("len=%d \r\n",len);
for(i = 0;i<len;i++)
{
if(*buf>='A'&& *buf<= 'Z')
tmp = *buf-'A'+10;
else if(*buf>='a'&& *buf<= 'z')
tmp = *buf-'a'+10;
else
tmp = *buf-'0';


result*=16;
result+=tmp;
buf++;
}


return result;
 }


将字符串转换为十进制三种方法的代码:

#include<stdio.h>
#include<stdlib.h>


int Myatoi(char *buf)
{
int result = 0;
char ch;


while((ch = *(buf++)) != '\0')
{
result = result*10 + ch-'0';
}


return result;
}


void main()
{
char *str = "12345";
int val,val2 = 0;
int val3;


val = atoi(str);
val2 = Myatoi(str);
val3 = strtol(str,NULL,10);


printf("val=%d,val2=%d,val3=%d \r\n",val,val2,val3);
}

因为之前串口通讯中经常会用到,记录在此方便以后自己查阅。


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mt6246/article/details/49911285
个人分类: 技术
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

c语言字符串转换为16进制和10进制数字

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭