永发信息网

C++语言:数的进制转换(用类做)

答案:3  悬赏:0  手机版
解决时间 2021-03-17 13:35
C++语言:数的进制转换(用类做)
(1) 将输入的2进制数(一个非“0”即“1”的字符串)化为10进制数。
提示:用字符数组a盛放所输入的二进制数;而后从后往前逐一计算每一位的“位权”w (2的0次方、2的1次方、...),再计算“位权”乘以“位值”并累加到一个初值为0的变量value上,最后输出该value。
(2)如何把8进制数或16进制数化为10进制数。
(3)如何把某一个k进制的数化为10进制数呢?
4. 编程序,输入正整数m,它代表一个人民币钱数(元数)。求取这样一个方案,使用最少张数的人民币纸币,凑成上述的钱数m,并输出求取结果。
注意,现在共有7种元以上面值的人民币纸币,分别为:100,50,20,10,5,2,1。
最佳答案
#include
#include
#include

using namespace std ;

class Trans{
private:
string buf ;
int base ;
public:
Trans(){
cout << "输入数字" << endl ;
cin >> buf ;
cout << "输入进制" << endl ;
cin >> base ;
}
void output(){
cout << strtol(buf.c_str(),NULL,base) << endl ;
}
};

int main(){
Trans s ;
s.output();
return 0 ;
}
全部回答
//10->2 cstring decimaltobin(int idecimal) { char c[20]; _itoa(idecimal, c, 2 ); cstring str(c); return str; } //10->16 cstring decimaltohex(int idecimal) { char c[20]; sprintf(c, "%x", idecimal);// _ltoa( l, buffer, 16 ); cstring str(c); return str; } //10->8 cstring decimaltooct(int idecimal) { char c[20]; sprintf(c, "%o", idecimal); cstring str(c); return str; }
(1)//把二进制数转换为十进制 #include #include class transfer { public: transfer(int a,int n) { A=a;N=n;} double Tran() { double value=0; for(int i=N-1;i>=0;i--) { value+=A/pow(10,i)*pow(2,i); //利用权位转换公式 A=A%int(pow(10,i)); } return value; } private: int A;int N; }; void main() { int n; int a; cout<<"请输入要转换的二进制数位数: "; cin>>n; cout<<"请输入该二进制数(非1即0)? "; cin>>a; transfer T(a,n); cout<<"该数转换为十进制为:"<
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯