8转2转16
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
string turi[]={"000","001","010","011","100","101","110","111"};
int main(){
string s,ts,tts;
cin>>s;
for(int i=0;i<s.size();i++){
ts+=turi[s[i]-'0'];
}
if(s.size()%4!=0){
string g;
for(int i=1;i<=4-ts.size()%4;i++){
g+='0';
}
g+=ts;
ts=g;
}
for(int i=0;i<ts.size();i+=4){
if(ts[i]=='0' && ts[i+1]=='0' && ts[i+2]=='0' && ts[i+3]=='0') tts+='0';
if(ts[i]=='0' && ts[i+1]=='0' && ts[i+2]=='0' && ts[i+3]=='1') tts+='1';
if(ts[i]=='0' && ts[i+1]=='0' && ts[i+2]=='1' && ts[i+3]=='0') tts+='2';
if(ts[i]=='0' && ts[i+1]=='0' && ts[i+2]=='1' && ts[i+3]=='1') tts+='3';
if(ts[i]=='0' && ts[i+1]=='1' && ts[i+2]=='0' && ts[i+3]=='0') tts+='4';
if(ts[i]=='0' && ts[i+1]=='1' && ts[i+2]=='0' && ts[i+3]=='1') tts+='5';
if(ts[i]=='0' && ts[i+1]=='1' && ts[i+2]=='1' && ts[i+3]=='0') tts+='6';
if(ts[i]=='0' && ts[i+1]=='1' && ts[i+2]=='1' && ts[i+3]=='1') tts+='7';
if(ts[i]=='1' && ts[i+1]=='0' && ts[i+2]=='0' && ts[i+3]=='0') tts+='8';
if(ts[i]=='1' && ts[i+1]=='0' && ts[i+2]=='0' && ts[i+3]=='1') tts+='9';
if(ts[i]=='1' && ts[i+1]=='0' && ts[i+2]=='1' && ts[i+3]=='0') tts+='a';
if(ts[i]=='1' && ts[i+1]=='0' && ts[i+2]=='1' && ts[i+3]=='1') tts+='b';
if(ts[i]=='1' && ts[i+1]=='1' && ts[i+2]=='0' && ts[i+3]=='0') tts+='c';
if(ts[i]=='1' && ts[i+1]=='1' && ts[i+2]=='0' && ts[i+3]=='1') tts+='d';
if(ts[i]=='1' && ts[i+1]=='1' && ts[i+2]=='1' && ts[i+3]=='0') tts+='e';
if(ts[i]=='1' && ts[i+1]=='1' && ts[i+2]=='1' && ts[i+3]=='1') tts+='f';
}
bool flg=0;
for(int i=0;i<tts.size();i++){
if(tts[i]!='0' || flg){
cout<<tts[i];
flg=1;
}
}
return 0;
}