描述
请将一个不超过100位的十六进制数转换为二进制数!
输入描述
一个不超过100位的十六进制整数
输出描述
该数对应的二进制数!
用例输入 1
123456789ABCDEF
用例输出1
100100011010001010110011110001001101010111100110111101111
AC code
#include<bits/stdc++.h>
using namespace std;
long long xToTen(string s,int jz)
{
int res =0;
for(int i=0;i<=s.length()-1;i++)
{
if(s[i]!='0')
{
char c=s[i];
int temp=0;
if(s[i]>= '0'&&s[i]<='9') temp = c-'0' ;
else temp =c-'A'+10;
res = res + temp*pow(jz,s.length()-1-i);
}
}
return res;
}
string tenTox(long long res,int jz)
{
string s;
int temp=0;
while(1)
{
if(res==0&&temp>0) break;
int k =res%jz;
char c;
if(k>=0&&k<=9) c=k+'0';
else c='A'+k-10;
s=s+c;
res/=jz;
temp++;
}
return s;
}
int main()
{
string s;
getline(cin,s);
long long res =xToTen(s,16);
s.clear();
s=tenTox(res,2);
for(int i=s.length()-1;i>=0;i--) cout<<s[i];
return 0;
}
想破200粉,必回