关于类型转换解决思路

关于类型转换main(){chara[1]{ 3 }intbb(int)a[0]printf( %d ,b)}为什么会输出51??我想要的结果是

关于类型转换
main(){
char   a[1]={ '3 '};
int   b;
b=(int)a[0];
printf( "%d ",b);
}
为什么会输出51??我想要的结果是整型的3

[解决办法]
51是“3”的ASCII的值,用十六进制表示的话就是0x33,当然0x31 就是1。
[解决办法]
输出的是 '3 '的ASCII码
还要减去 '0 '的ASCII码才能得到3