当前位置:   article > 正文

【清澄】A1013. 进制转换4

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


啊,连d也要用long long啊。。。

  1. #include<cstdio>
  2. #include<iostream>
  3. #include<algorithm>
  4. #include<cstring>
  5. using namespace std;
  6. char ans[100];
  7. int main()
  8. {
  9. while(scanf("%s",ans+1)!=EOF)
  10. {
  11. int len=strlen(ans+1);
  12. long long sum=0,d;
  13. for(int i=len;i>=1;i--)
  14. {
  15. if(ans[len-i+1]>='0' && ans[len-i+1]<='9')
  16. d=ans[len-i+1]-'0';
  17. else
  18. d=ans[len-i+1]-'A'+10;
  19. for(int j=1;j<i;j++)
  20. {
  21. d=d*16;
  22. }
  23. sum+=d;
  24. }
  25. printf("%I64d\n",sum);
  26. memset(ans,0,sizeof(ans));
  27. }
  28. return 0;
  29. }


  1. #include<cstdio>
  2. #include<iostream>
  3. #include<cstring>
  4. using namespace std;
  5. char a[100];
  6. int main()
  7. {
  8. while(scanf("%s",a+1)!=EOF)
  9. {
  10. long long sum=0,d;
  11. int len=strlen(a+1);
  12. for(int i=1;i<=len;i++)
  13. {
  14. if(a[i]>='0' && a[i]<='9')
  15. d=a[i]-'0';
  16. else
  17. d=a[i]-'A'+10;
  18. for(int j=0;j<len-i;j++)
  19. d=d*16;
  20. sum+=d;
  21. }
  22. printf("%I64d\n",sum);
  23. memset(a,0,sizeof(a));
  24. }
  25. return 0;
  26. }


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

闽ICP备14008679号