十六进制数转换为十进制-c语言

傷城~ 2022-06-04 07:48 337阅读 0赞
  1. #include <stdio.h>
  2. #include <string.h>
  3. int pow(int a,int b);
  4. int main(int argc,char *argv[])
  5. {
  6. if(argc!=2)
  7. {
  8. printf("usage:hextoint hex\n");
  9. return -1;
  10. }
  11. int len = 0;
  12. int num = 0;
  13. int sum = 0;
  14. int p = 0;
  15. int i = 0;
  16. len = strlen(argv[1]);
  17. char buff[len];
  18. strcpy(buff, argv[1]);
  19. for(i=0;i<len;i++)
  20. {
  21. if(buff[i]<='9')//获取每一位的十进制表示
  22. {
  23. num = buff[i] - '0';
  24. }
  25. else
  26. {
  27. num = buff[i] - 'A' + 10;
  28. }
  29. p = pow(16, len-i-1);
  30. sum += num * p;
  31. }
  32. printf("%s的十进制格式是%d\n", buff, sum);
  33. return 0;
  34. }
  35. int pow(int a, int b)//计算a的b次方
  36. {
  37. int ret = 1;
  38. int i = 0;
  39. for(i=0;i<b;i++)
  40. {
  41. ret *= a;
  42. }
  43. return ret;
  44. }

发表评论

表情:
评论列表 (有 0 条评论,337人围观)

还没有评论,来说两句吧...

相关阅读