LINUX.ORG.RU

История изменений

Исправление crutch_master, (текущая версия) :

Ну, короче, смотри.

int hexCharToInt(char c) {
   char* vars="0123456789ABCDEF";
   int i;
   for (i = 0; i < 16; i++) if (*vars[i] == c) break;
   return i;
}
char intToHexChar(int i) {
   char* vars="0123456789ABCDEF";
   return *vars[i%16];
}
long long strToLL(char* str) {
    long long t = 1;
    long long ret = 0;
    for (int i = 0; i < 64; i++) {
        long long add = hexCharToInt(*str[i]);
        ret += add * t;
        t *= 16;
    }
    return ret;
}
А с long long to hex просто сделай printf в hex и обрежь его, если надо.

Исходная версия crutch_master, :

Ну, короче, смотри.

int hexCharToInt(char c) {
   char* vars="0123456789ABCDEF";
   int i;
   for (i = 0; i < 16; i++) if (*vars[i] == c) break;
   return i;
}
char intToHexChar(int i) {
   char* vars="0123456789ABCDEF";
   return *vars[i%16];
}
long long strToLL(char* str) {
    long long t = 1;
    long long ret = 0;
    for (int i = 0; i < 64; i++) {
        long long add = hexCharToInt(*str[i]);
        ret += add * t;
        t *= 16;
    }
    return ret;
}
А с long long to hex просто сделай printf.