C++中如何将输入的二进制数转换为十进制数

来源:百度知道 编辑:UC知道 时间:2024/05/10 09:22:17
如题~
谢谢
满意我会多追加分~
仅仅自然数呢

#include<iostream.h>
#include<math.h>

void f1(int m, int n) { //转整数部分
if(m) { f1(m/n,n);
if(n<10) cout<<m%n;
else m%n>=10? cout<<char(m%n-10+'A') : cout<<m%n;
}
}

void f2(double m, int n) { //转小数部分
while(m) { if(n<10) cout<<int(m*n);
else m*n>=10? cout<<char(int(m*n)-10+'A') : cout<<int(m*n);
m = m*n - int(m*n);
}
}

void f(double m, int n) {
f1(m, n);
if(int(m) == m) return;
cout<<'.';
m -= int(m);
f2(m, n);
}

void f10(char c[], double m) {
cout<<' '<<c<<" 转换成"<< 2<<"进制 = "; f(m, 2); cout<<endl;
cout<<' '<<c<<" 转换成"<< 8<<"进制 = "; f(m, 8); cout<<endl;
cout<<' '<<c<