编辑代码

#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;
}