#include <stdio.h>
#include <stdint.h>
uint16_t hex_to_uint(const char *str) {
// Your logic here
uint16_t b=0,a=0;
while(true){
if(*(str+b)=='\0'){
break;
}
b++;
}
for(int i=0;i<b;i++){
//printf("%c ",*(str+i));
if(((int)*(str+i))>64&&((int)*(str+i))<91){
a|= (((int)*(str+i))-55)<<(b-1-i)*4;
//printf("%d ",a);
}
else if(((int)*(str+i))>96&&((int)*(str+i))<123){
a|= (((int)*(str+i))-87)<<(b-1-i)*4;
//printf("%d ",a);
}
else{
a|= (((int)*(str+i))-48)<<(b-1-i)*4;
//printf("%d ",a);
}
}
return a;
}
int main() {
char hex[10];
scanf("%s", hex);
printf("%u", hex_to_uint(hex));
return 0;
}
Input
1A3F
Expected Output
6719