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。
C++语言:数的进制转换(用类做)
答案:3 悬赏:0 手机版
解决时间 2021-03-17 13:35
- 提问者网友:棒棒糖
- 2021-03-16 18:03
最佳答案
- 五星知识达人网友:几近狂妄
- 2021-03-16 19:00
#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 ;
}
#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 ;
}
全部回答
- 1楼网友:一把行者刀
- 2021-03-16 20:02
//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;
}
- 2楼网友:枭雄戏美人
- 2021-03-16 19:49
(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<<"该数转换为十进制为:"<
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯