Advertisement
_vim_

hex

Feb 29th, 2020
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.69 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <limits.h>
  4. #include <errno.h>
  5.  
  6. int arg2int(const char *arg)
  7. {
  8.     errno = 0;
  9.     char *tmp;
  10.     long larg = strtol(arg, &tmp, 10);
  11.  
  12.     if (*tmp == '\0' && errno == 0 && larg >= INT_MIN && larg <= INT_MAX)
  13.         return (int)larg;
  14.  
  15.     return -1;
  16. }
  17.  
  18. void dec2hexarr(int dec, char *buf)
  19. {
  20.     int i = 0;
  21.     int rem;
  22.  
  23.     while (dec)
  24.     {
  25.         rem = dec % 16;
  26.         buf[i++] = (rem < 10) ? rem + '0' : rem + '7';
  27.         dec /= 16;
  28.     }
  29. }
  30.  
  31. int main(int argc, char **argv)
  32. {
  33.     int i, j;
  34.     for (i = 1; i < argc; ++i)
  35.     {
  36.         char buf[256] = {0};
  37.  
  38.         dec2hexarr(arg2int(argv[i]), buf);
  39.  
  40.         for (j = 0; j < 256; ++j)
  41.             printf("%c", buf[j]);
  42.  
  43.         puts("");
  44.     }
  45.  
  46.     return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement