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