#include <stdio.h> #include <stdint.h> uint16_t hex_to_uint(const char *str) { unsigned int result=0; int i=0; while(str[i] != '\0'){ char currentchar = str[i]; if(currentchar >= 'a' && currentchar <= 'f'){ currentchar -= 'a' - 'A'; } if((currentchar >= '0' && currentchar <= '9') || (currentchar >= 'A' && currentchar <= 'F')){ uint16_t hexvalue= (currentchar >= '0' && currentchar <= '9') ? (currentchar - '0') : (currentchar - 'A'+10); result = result * 16 + hexvalue; } i++; } 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