#include<iostream>usingnamespace std;// 将 4 位的 2 进制转换为 1 位的 16 进制charnum(string s){// 1101,从最低位开始按权展开,转换为10进制// 再转换为16进制的字符int r =0, i, t =1;for(i = s.size()-1; i >=0; i--){
r = r +(s[i]-'0')* t;
t = t *2;}char c;// 存储1位的16进制字符if(r <10){
c = r +'0';}else{
c = r +'A'-10;}return c;}intmain(){
string s, t;// 存放二进制
cin >> s;// 补 0if(s.size()%4==1){
s ="000"+ s;}elseif(s.size()%4==2){
s ="00"+ s;}elseif(s.size()%4==3){
s ="0"+ s;}// cout << s;// 每4位一格,将4位的二进制转换为对应的16进制for(int i =0; i < s.size(); i = i +4){
t = s.substr(i,4);// cout << t << endl;
cout <<num(t);}}