1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > C/C++编程日记:十六进制字符串转换为十进制整数(代码实现)

C/C++编程日记:十六进制字符串转换为十进制整数(代码实现)

时间:2021-01-31 23:36:16

相关推荐

C/C++编程日记:十六进制字符串转换为十进制整数(代码实现)

代码实现十六进制字符串转换为十进制整数的方法,具体实现如下:

/** 将十六进制数字组成的字符串(包含可选的前缀0x或0X)转换为与之等价的整型值*/#include <stdio.h>#include <math.h>/* 将十六进制中的字符装换为对应的整数 */inthexchtoi(charhexch ){charphexch[] ="ABCDEF";charqhexch[] ="abcdef";inti;for(i=0;i<6;i++){if((hexch == phexch[i]) || (hexch == qhexch[i]))break;}printf("i=%d",i);if(i >= 6){return0;/* 非十六进制字符 */}return10+i;}inthtoi(chars[]){intn=0;/*有n位*/intvalu=1;/*是否有效*/inti=0,j;intanswer=0;/* 有效性检查 */if((s[0] =='0') && ((s[1] =='x') || (s[1] =='X'))){i += 2;}while((s[i] !='\n')){if((s[i] <'0') && (s[i] >'9')){if(hexchtoi(s[i]) == 0){valu=0;break;}}n++;i++;}if(valu != 0){for(j=0;j<n;j++){answer += ((int)pow(16,j) * hexchtoi(s[i-j-1]));}}elseanswer = -1;returnanswer;}main(){char*n[] = {"0x7ff0","0x2341"};printf("%s is %d\n",n[0],htoi(n[0]));printf("%s is %d\n",n[0],123);}

另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!笔者这里或许可以帮到你~

UP在主页上传了一些学习C/C++编程的视频教程,有兴趣或者正在学习的小伙伴一定要去看一看哦!会对你有帮助的~

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

学习:

学习:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。