当前位置:   article > 正文

蓝桥杯试题 基础练习 十六进制转十进制_蓝桥杯十六进制转十进制

蓝桥杯十六进制转十进制

问题描述

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

样例输入

FFFF

样例输出

65535

注:sum的范围需要很大,故写成long long int

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4. long long int i, len, x, sum=0;
  5. char str[10];
  6. gets(str);
  7. len=strlen(str);
  8. for(i=0;i<len;i++){
  9. if(str[i]=='A'){
  10. x=10;
  11. }
  12. else if(str[i]=='B'){
  13. x=11;
  14. }
  15. else if(str[i]=='C'){
  16. x=12;
  17. }
  18. else if(str[i]=='D'){
  19. x=13;
  20. }
  21. else if(str[i]=='E'){
  22. x=14;
  23. }
  24. else if(str[i]=='F'){
  25. x=15;
  26. }
  27. else{
  28. x=str[i]-48;//因为0的ASCLL码为48
  29. }
  30. //cout<<x<<endl;
  31. sum+=x*pow(16, len-i-1);
  32. }
  33. //cout<<len<<endl;
  34. cout<<sum;
  35. return 0;
  36. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/244455
推荐阅读
相关标签
  

闽ICP备14008679号