#include <iostream>

using namespace std;

#define	max	40
#define	maxp	41

long long int a,b,c;
long d[maxp];
int e,f;

int main(){
	start:
	
	for(;;){
	//初期化
		a=0;
		b=0;
		c=0;
		e=0;
		f=1;
		for(int i=0;i<=max;i++) d[i]=0;
	//入力	
		cout << " 2進数: ";
		for(cin >> a;!cin;cin >>a){
			cin.clear();
			cin.ignore();
			goto start;
		}
		
		for(int i=1;i<=max;i++){
			d[i]=a%10;
			a=a/10;
			if(a==0){
				e=i;
				break;
			}
		}
		
	//0か1以外ならコンティニュー
		for(int i=1;i<=max;i++){ 
			if(d[i]!=0 && d[i]!=1){
				cout << "0か1を入力してください。\n\n";
				goto start;
			}
		}
		
	//計算
		for(int i=1;i<=e;i++){
			f=1;
			for(int j=1;j<=(i-1);j++)f=f*2;
			b=b+(d[i]*f);
		}
	//表示
		cout << "16進数: 0x";
		cout << hex << b << "\n\n";
	}
}