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