直接上代码吧,当然很不完善,留待日后进行修改。。。
#include<iostream> using namespace std; void change(char * arr,int a,int b) { //arr 是操作数组,a是操作数进制,b是目标进制 int value=0,i=0; int temp; int len=strlen(arr); /*所有的进制先转化为十进制*/ while(len--) { value=value*a+*(arr+len)-'0'; } while(value) { temp=value%b; value=value/b; i++; cout<<temp; } } void convert(char *str) { int sum=0; while(*str!='\0') { if(*str>'0' && *str<'9') { sum=sum*16+*str-'0'; } else { sum=sum*16+*str-65; } str++; } cout<<"十进制数是:" << sum << endl; } int main() { char str[10]; cout<< "输入十六进制数:" << endl; cin>>str; convert(str); change(str,2,10); system("pause"); return 0; }