当前位置:   article > 正文

十六进制转十进制 (蓝桥杯,基础练习)_open judge十六进制转十进制

open judge十六进制转十进制

问题描述

  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。

样例输入

FFFF

样例输出

65535

本题需要将十六进制的数展开 之后进行计算

  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <math.h>
  5. using namespace std;
  6. int main()
  7. {
  8. char a[8];
  9. int b[10]={0};
  10. int n,i;
  11. long long int sum=0;
  12. gets(a);
  13. n=strlen(a);//计算十六进制的数的长度
  14. for(i=n-1;i>=0;i--)
  15. {
  16. if(a[i]=='0')b[i]=0;
  17. if(a[i]=='1')b[i]=1;
  18. if(a[i]=='2')b[i]=2;
  19. if(a[i]=='3')b[i]=3;
  20. if(a[i]=='4')b[i]=4;
  21. if(a[i]=='5')b[i]=5;
  22. if(a[i]=='6')b[i]=6;
  23. if(a[i]=='7')b[i]=7;
  24. if(a[i]=='8')b[i]=8;
  25. if(a[i]=='9')b[i]=9;
  26. if(a[i]=='A')b[i]=10;
  27. if(a[i]=='B')b[i]=11;
  28. if(a[i]=='C')b[i]=12;
  29. if(a[i]=='D')b[i]=13;
  30. if(a[i]=='E')b[i]=14;
  31. if(a[i]=='F')b[i]=15;
  32. }
  33. for(i=0;i<=n-1;i++)
  34. {
  35. sum=b[i]*pow(16,n-1-i)+sum;
  36. }
  37. printf("%lld\n",sum);
  38. return 0;
  39. }

 

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/226625
推荐阅读
相关标签
  

闽ICP备14008679号