#include <stdio.h> #include <stdint.h> uint16_t hex_to_uint(const char *str) { // Your logic here uint16_t result =0; while(*str!='\0') { result <<= 4; result |= ((*str>='0')&&(*str<'9'))?*str-'0': ((*str>='a')&&(*str<'f'))?*str-'a'+10:*str-'A'+10; // printf("*str=%c result=%d \n",*str,result); str++; } 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