#include <stdio.h>
#include <stdint.h>
// 函数声明
unsigned int hexToDecimal(uint16_t hex);
int main() {
uint16_t hex = 0x0f;
printf("请输入一个十六进制数: ");
// scanf("%hx", &hex);
unsigned int decimal = hexToDecimal(hex);
printf("十进制数为: %u\n", decimal);
return 0;
}
unsigned int hexToDecimal(uint16_t hex) {
unsigned int decimal = 0;
int base = 1;
// 将十六进制数的每个数字与其对应的权值相乘,并累加到decimal中
while (hex > 0) {
decimal += (hex % 16) * base;
hex /= 16;
base *= 16;
}
return decimal;
}