Advertisement
in_chainz

Untitled

Dec 11th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.87 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. char res[100];
  5.  
  6. char * convert(const char * str) {
  7.     size_t n = strlen(str);
  8.     int iter = (int) n - 1;
  9.     int counter = 0;
  10.  
  11.     int sz = -1;
  12.     char get[16];
  13.     for (char i = 0; i < 10; ++i) {
  14.         get[i] = ('0' + i);
  15.     }
  16.     for (char i = 0; i < 6; ++i) {
  17.         get[10 + i] = ('A' + i);
  18.     }
  19.     size_t size = (n + 3) / 4;
  20.     // char res[size];
  21.     int cur = 0;
  22.     int base = 1;
  23.     char tmp = 0;
  24.     while (iter >= 0) {
  25.         if (counter == 4) {
  26.             counter = 0;
  27.             res[size - cur - 1] = get[tmp];
  28.             base = 1;
  29.             tmp = 0;
  30.             cur++;
  31.         }
  32.         tmp += base * (str[iter] - '0');
  33.         base *= 2;
  34.         counter++;
  35.         iter--;
  36.  
  37.     }
  38.     if (counter > 0) {
  39.         res[size - cur - 1] = get[tmp];
  40.     }
  41.  
  42.  
  43.     return res;
  44.  
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement