输入
123456789ABCDEF
输出
100100011010001010110011110001001101010111100110111101111
#include <bits/stdc++.h>
using namespace std;
string t[16]={"0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"};
int main(){
string s;
string r="";//存二进制的结果
cin>>s;
int x;
// 循环每一位的16进制转换为四位的二进制
for (int i = 0; i < s.size(); i++)
{
//如果是字符‘0’~‘9’
if(isdigit(s[i])){
x=s[i]-'0';
}else{
// 将字符换成数字
x=s[i]-'A'+10;
}
r=r+t[x];
}
//删除前导零
//当r的第一位是0,删除
while (r[0]=='0')
{
r.erase(0,1);
}
//如果输入的是0,那么结果是0000,会被上面的while删前导零,都删空
if(r==""){
cout<<0<<endl;
}else{
cout<<r<<endl;
}
return 0;
}