#includeiostream.h#includestring.hdoubletransform(){inti,j,pow=1;intdot=-1;//记录小数点位置doubleDEC=0,fpow;charHEX[100];cout请输入一个十六进制数endl;loop:cinHEX;j=strlen(HEX);for(i=j;i0;){i--;if((HEX[i]='0')&&(HEX[i]='9'))HEX[i]=HEX[i]-'0';elseif((HEX[i]='A')&&(HEX[i]='F'))HEX[i]=HEX[i]-'A'+10;elseif((HEX[i]='a')&&(HEX[i]='f'))HEX[i]=HEX[i]-'a'+10;elseif(HEX[i]=='.')dot=i;//找到小数点else{cout你的输入不合法,请重新输入endl;gotoloop;}}if(dot!=-1)//当dot的值不等于-1表示有小数点此时dot的值是小数点的位置{for(i=dot;i0;)//小数点前部分用你的方法{i--;DEC=DEC+HEX[i]*pow;pow=pow*16;}fpow=1.0/16;for(i=dot;ij-1;)//小数点后部分从16^(-1)开始{i++;DEC+=HEX[i]*fpow;fpow/=16;}cout该十六进制数转化为十进制数为DECendl;return0;}else{for(i=j;i0;){i--;DEC=DEC+HEX[i]*pow;pow=pow*16;}cout该十六进制数转化为十进制数为DECendl;return0;}}intmain(){while(1){transform();}return0;}