stack<char> pro_stack; string multi_single(string mplier,char mplicand,int base){ int len=mplier.size(); int mplicand_ten=0; if(mplicand-48<10) mplicand_ten=mplicand-48; else mplicand_ten=code[mplicand-65]; int mplier_ten=0; int product=0; char cpro=' '; string total_pro=""; int carry=0; int real_pro=0; for(int i=len-1;i>=0;i--){ if(mplier[i]-48<10) mplier_ten=mplier[i]-48; else mplier_ten=code[mplier[i]-65]; real_pro=carry+mplier_ten*mplicand_ten; product=real_pro%base; if(product>9) cpro=product-10+'A'; else cpro=(char)(product+48); pro_stack.push(cpro); carry=real_pro/base; } while(!pro_stack.empty()){ total_pro.append(1,pro_stack.top()); pro_stack.pop(); } return total_pro; }
//n进制转换成十进制 float transtoT(string str_n,float base){ float num_ten=0; int in; int exp; for(int i=str_n.size()-1;i>=0;i--){ if(str_n[i]-48<10) in=str_n[i]-48; else in=code[str_n[i]-65]; exp=str_n.size()-1-i; num_ten+=in*pow(base,exp); } return num_ten; }