我的还支持多位16进制

不写这个可以吗?
程序代码:
10楼代码少个条件,补充一下
虽然代码很糟糕,但也不能给别人缺胳膊少腿的代码
#include<iostream>
#include<string>
#include<bitset>
using namespace std;
int main()
//两个字符,输出10进制16进制
//字符转十进制-55,
//一位数字输出ch,一位字符输出10进制-55
//数字加字符=2+,数字变2进制,左移4位字符变2进制加数字2进制
//转换10进制(不可行)
//
{string a;cin>>a;int count{};int tem{};
int shi[2];int fg{};int i{};int bin1{};
for(i=0;a[i];++i)
{ if(a[i]>='0'&&a[i]<='9')
{++count;}
else if(a[i]>='A' && a[i]<='Z')
{++tem;}
}
fg=count+tem;//输入字符数字和字母的位数
//cout<<fg;
if((fg==1)&&(a[0]>='0'&&a[0]<='9'))
{cout<<a[0];cout<<endl;cout<<"十六进制"<<a;//一位且是数字打印字符
}
else if((fg==1)&&(a[0]>='A' && a[0]<='Z'))
{cout<<static_cast<int>(a[0])-55;
cout<<endl;
cout<<"十六进制"<<a;//一位且是字母打印字字母二进制
}
else
{//2位的情况
if(tem==1){int x= static_cast<int>(a[0])-48;
int y= static_cast<int>(a[1])-55;
cout<<x*16+y;
cout<<endl;//字母有一个,第一个减48减55数字字母变10进制,推导出十六进制总是a【0】*16+a[1]
cout<<"十六进制"<<a;}
if(tem==2)
//字母2位的情况同上
{int x= static_cast<int>(a[0])-55;
int y= static_cast<int>(a[1])-55;
cout<<x*16+y;
cout<<endl;
cout<<"十六进制"<<a;}
if(count==2)
{ int x=static_cast<int>( a[0])-48;
int y=static_cast<int>(a[1])-48;
cout<<x*16+y;
cout<<endl;
cout<<"十六进制"<<a;
}
}
}
