有一个测试点错求修改!
请将一个不超过 100100 位的二进制数转换为十六进制数!
输入
一个不超过 100100 位的二进制整数。
输出
该数对应的十六进制数。
样例
输入
11001001111011111000001000010011
输出
C9EF8213
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
char b[17]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'} ;
cin>>s ;
long long i=s.size()-1,num=0;
while(i>=0){
if(s[i]=='1')num+=pow(2,s.size()-i-1);
i--;
}
if(num==0){
cout<<0<<endl;
return 0;
}
s="";
char a;
while(num!=0)
{
a=b[num%16];
s=a+s;
num/=16;
}
cout<<s<<endl;
return 0;
}