#include <stdio.h> #include <stdint.h> char hex[0xff]={0}; void setup(){ for(int i=0,j='0';i<10;i++,j++) hex[j]=i; hex['a']=hex['A']=10; hex['b']=hex['B']=11; hex['c']=hex['C']=12; hex['d']=hex['D']=13; hex['e']=hex['E']=14; hex['f']=hex['F']=15; } uint16_t hex_to_uint(const char *str) { setup(); uint16_t num=0; for(int i=0;str[i];i++){ num*=16; num+=hex[str[i]]; } return num; } 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