#include <stdio.h> #include <stdint.h> uint16_t hex_to_uint(const char *str) {\ int len=0; uint16_t result; int factor = 1; int hexbit; while (str[len] != '\0') { len++; } for (int i = len-1; i>=0; i--) { if ((str[i] >= '0') && (str[i] <= '9')) { hexbit = str[i] - '0'; } else if ((str[i] >= 'A') && (str[i] <= 'F')) { hexbit = str[i] - 'A' + 10; } else if ((str[i] >= 'a') && (str[i] <= 'f')) { hexbit = str[i] - 'a' + 10; } result += hexbit*factor; factor *= 16; } return result; } int main() { char hex[10]; scanf("%s", hex); printf("%u", hex_to_uint(hex)); return 0; }
Test Cases
Test Results
Input
1A3F
Expected Output
6719