#include<iostream>#include<string>#include <math.h>using namespace std;int main(){ string num2,num16; int i,len,num=0; //16进制转换成二进制(字符串) num2=num16=""; cin>>num16; len=num16.length(); for(i=0; i<len; i++) { switch(num16[i]) { case '0': num2+="0000"; break; case '1': num2+="0001"; break; case '2': num2+="0010"; break; case '3': num2+="0011"; break; case '4': num2+="0100"; break; case '5': num2+="0101"; break; case '6': num2+="0110"; break; case '7': num2+="0111"; break; case '8': num2+="1000"; break; case '9': num2+="1001"; break; case 'A': num2+="1010"; break; case 'B': num2+="1011"; break; case 'C': num2+="1100"; break; case 'D': num2+="1101"; break; case 'E': num2+="1110"; break; case 'F': num2+="1111"; break; case 'a': num2+="1010"; break; case 'b': num2+="1011"; break; case 'c': num2+="1100"; break; case 'd': num2+="1101"; break; case 'e': num2+="1110"; break; case 'f': num2+="1111"; break; default: break; } } // cout<<num2<<endl;//输出二进制数 //二进制转换成十进制 len=num2.length(); //cout<<len<<endl; for(i=0; i<len; i=i+1) { //cout<<num2[i]<<" "<<num2[i+1]<<" "<<num2[i+2]<<endl; if(num2[i]=='1') num=num+pow(2,len-i-1);//程序要引用math.h文件,使用时pow(x,y)表示x的y次方。 //cout<<num<<endl; } cout<<num<<endl; return 0;}
新闻热点
疑难解答