输入16进制,输出10进制,想直接用格式解决,但是不行。为什么?

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a;
    scanf("%x", &a);
    printf("%d",a);
    return 0;
}

输入输出是正常的,你计算错了吧

img

怎么不行了?
输入52,输出是82,对的啊