C - HtoI: Convert a string of hexadecimal digits into its equivalent integer value

淩亂°似流年 2022-10-26 15:29 223阅读 0赞

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net

  1. /*
  2. * Write a function HtoI(s), which converts a string of hexadecimal digits
  3. * (including an optional 0x or 0X) into its equivalent integer value.
  4. * The allowable digits are 0 through 9, a through f, and A through F.
  5. *
  6. * HtoI.c - by FreeMan
  7. */
  8. #include <stdio.h>
  9. #include <ctype.h>
  10. unsigned long HtoI(const char s[]);
  11. int main()
  12. {
  13. printf("%ld\n", HtoI("0xFA9C"));
  14. printf("%ld\n", HtoI("0xFFFF"));
  15. printf("%ld\n", HtoI("0X1111"));
  16. printf("%ld\n", HtoI("0XBCDA"));
  17. return 0;
  18. }
  19. unsigned long HtoI(const char s[])
  20. {
  21. unsigned long n = 0;
  22. for (int i = 0; s[i] != '\0'; i++)
  23. {
  24. int c = tolower(s[i]);
  25. if (c == '0' && tolower(s[i + 1]) == 'x')
  26. {
  27. i++;
  28. }
  29. else if (c >= '0' && c <= '9')
  30. {
  31. n = 16 * n + (c - '0');
  32. }
  33. else if (c >= 'a' && c <= 'f')
  34. {
  35. n = 16 * n + (c - 'a' + 10);
  36. }
  37. }
  38. return n;
  39. }
  40. // Output:
  41. /*
  42. 64156
  43. 65535
  44. 4369
  45. 48346
  46. */

发表评论

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

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

相关阅读