一个将十六进制转换成十进制的小例子
发布日期:2021-07-13 02:57:20 浏览次数:2 分类:技术文章

本文共 1646 字,大约阅读时间需要 5 分钟。

#include 
#include
#include
#include
int main(){ int i, j, len, sum = 0; char s[1000]; //store the 0x number you input printf("Please input the number you want to chang form 0x(..) to int\n"); scanf("%s", s); len = strlen(s); //the length of s if((s[0] == '0') && (s[1] == 'x' || s[1] == 'X')) //check the prefix { for(i = len-1; i >= 2; i--) { int tmp = 1; //store the 16^x for(j = len-1; j > i; j--) { tmp *= 16; } if(s[i] >= '0' && s[i] <= '9') { sum += tmp * (s[i] - '0'); } else if(s[i] >= 'a' && s[i] <= 'f') { sum += tmp * (s[i] - 'a' + 10); } else if(s[i] >= 'A' && s[i] <= 'F') { sum += tmp * (s[i] - 'A' + 10); } else { printf("Your input is invalid!\n"); return 0; } } printf("The result is %d\n", sum); } else { printf("Your input is invalid!\n"); } return 0;}
只是简单的实现了十六进制向十进制的转换,没有考虑复杂的情况 .

转载地址:https://blog.csdn.net/buaa_shang/article/details/8171081 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C中union的用法
下一篇:C中确定整型的范围

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年03月24日 15时39分37秒