Advertisement
Guest User

Untitled

a guest
Jan 30th, 2015
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.75 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #define MAXLEN 1000
  4.  
  5. /* convert hex to decimal */
  6.  
  7. main()
  8. {
  9.     char input[MAXLEN];
  10.     printf("Hex number: 0x");
  11.     printf("Decimal conversion: %d\n", htoi(input));
  12.     return 0;
  13. }
  14.  
  15. int htoi(char s[])
  16. {
  17.     int i, c, num, dec, res;
  18.  
  19.     res = 0;
  20.     for (i=0; i<MAXLEN-1 && (c=getchar())!=EOF && c!='\n'; ++i)
  21.         s[i] = c;
  22.     num = i;
  23.     ++i;
  24.     s[i] = '\0';
  25.     i = 0;
  26.     for (num; num > 0; --num) {
  27.         if (s[i] >= 'A' && s[i] <= 'F')
  28.             dec = toupper(s[i]) - 'A' + 10;
  29.         else if (s[i] >= '0' && s[i] <= '9')
  30.             dec = s[i] - '0';
  31.         else
  32.             dec = 0;
  33.         res = res + (double) pow(16, (num-1)) * dec;
  34.         ++i;
  35.     }
  36.     return res;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement