您的位置:首页 > 编程语言 > C语言/C++

C++_n进制乘法和n进制转化成十进制函数

2013-07-29 17:53 246 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: