1. //多组输入
    2. //输入字符串类型的十六进制数据 0x0A
    3. //输出对应的十进制 10
    4. #include <stdio.h>
    5. #include <string.h>
    6. #include <math.h>
    7. int main()
    8. {
    9. char str_0x[100]={0};
    10. //字符类型多组输入间隔
    11. while(fgets(str_0x, sizeof(str_0x), stdin))
    12. {
    13. int bit_num = 0;
    14. int result = 0;
    15. //获取有效位数
    16. bit_num = strlen(str_0x)-3;
    17. //将字母对应arsc码顺接在数字后便于统一处理
    18. for(int i = 0;i<bit_num;i++)
    19. {
    20. if(str_0x[i+2]>=65&&str_0x[i+2]<=70)
    21. {
    22. str_0x[i+2]-=7;
    23. }
    24. }
    25. //统一将字符数字转成实际数字大小并套用进制转换公式
    26. for(int i = 0;i<bit_num;i++)
    27. {
    28. result+=(str_0x[(bit_num+1)-i]-48)*pow(16,i);
    29. }
    30. //********************************************************************
    31. //输出时注意打印换行符,否则报错
    32. //********************************************************************
    33. printf("%d\n",result);
    34. }
    35. }