
怎么用C++,把输入的十进制转化为二进制,八进制和十六进制输出呢?谢谢了。
3个回答
展开全部
#include "iostream.h"
class number
{
public:
int Num,num;
char m[20];
int n[20];
void input()//输入十进制数
{
cin>>Num;
}
void exchange_T0_B()//转为二进制
{
num=Num;
int i=0,j=0;
while(num)
{
n[i++]=num%2;
num=num/2;
}
do
{
cout<<n[--i];
}
while(i);
cout<<endl;
}
void exchange_T0_O()//转为八进制
{
num=Num;
int i=0,j=0;
while(num)
{
n[i++]=num%8;
num=num/8;
}
do
{
cout<<n[--i];
}
while(i);
cout<<endl;
}
void exchange_T0_H()//转为十六进制
{
num=Num;
int i=0,j=0;
while(num)
{
if(num%16>9)
m[i++]=55+num%16;
else m[i++]=num%16+48;
num=num/16;
}
do
{
cout<<m[--i];
}
while(i);
cout<<endl;
}
};
int main()
{
number NUM;
cout<<"输入:"<<endl;
NUM.input();
cout<<"二进制:";
NUM.exchange_T0_B();
cout<<"八进制:";
NUM.exchange_T0_O();
cout<<"十六进制:";
NUM.exchange_T0_H();
return 0;
}
class number
{
public:
int Num,num;
char m[20];
int n[20];
void input()//输入十进制数
{
cin>>Num;
}
void exchange_T0_B()//转为二进制
{
num=Num;
int i=0,j=0;
while(num)
{
n[i++]=num%2;
num=num/2;
}
do
{
cout<<n[--i];
}
while(i);
cout<<endl;
}
void exchange_T0_O()//转为八进制
{
num=Num;
int i=0,j=0;
while(num)
{
n[i++]=num%8;
num=num/8;
}
do
{
cout<<n[--i];
}
while(i);
cout<<endl;
}
void exchange_T0_H()//转为十六进制
{
num=Num;
int i=0,j=0;
while(num)
{
if(num%16>9)
m[i++]=55+num%16;
else m[i++]=num%16+48;
num=num/16;
}
do
{
cout<<m[--i];
}
while(i);
cout<<endl;
}
};
int main()
{
number NUM;
cout<<"输入:"<<endl;
NUM.input();
cout<<"二进制:";
NUM.exchange_T0_B();
cout<<"八进制:";
NUM.exchange_T0_O();
cout<<"十六进制:";
NUM.exchange_T0_H();
return 0;
}
展开全部
#包括“iostream.h时
班号
{
:
诠释次数,数量;
字符M [20];
廉政n [ 20];
无效输入()/ /输入十进制数
{
CIN >>编号;
}
无效exchange_T0_B()/ /以二进制...... /> {
数= NUM;
INT I = 0,J = 0;
(NUM)
{
了n [i + +] = NUM% 2
NUM = NUM / 2;
}
{
法院<< N [ - ];
}
而(I);
法院<< endl;
}
:无效exchange_T0_O()/ /八进制转换
{
NUM = NUM;
> INT I = 0,J = 0;
(NUM)
{
了n [i + +] = NUM%;
NUM = NUM / 8; />}
{
法院<< N [ - ];
}
而(I);
法院< endl; BR p>}
无效exchange_T0_H()/ /转换为十六进制
{
数= NUM;
INT I = 0,J = 0; (NUM)
{
(NUM%16> 9)
M [+ +] = 55 + NUM%16;
其他M [+ +] = NUM%16 +48;
民= num/16;
}
{
法院<< M [ - ];
}
(I);
法院<< endl;
}
}
诠释的main()
{
数NUM;
cout <<“请输入:”<< endl;
NUM.input();
法院<<“二进制”;
NUM.exchange_T0_B();
法院<<“八进制”;
NUM.exchange_T0_O();
cout <<“请十六进制:”
NUM.exchange_T0_H();
0
}
班号
{
:
诠释次数,数量;
字符M [20];
廉政n [ 20];
无效输入()/ /输入十进制数
{
CIN >>编号;
}
无效exchange_T0_B()/ /以二进制...... /> {
数= NUM;
INT I = 0,J = 0;
(NUM)
{
了n [i + +] = NUM% 2
NUM = NUM / 2;
}
{
法院<< N [ - ];
}
而(I);
法院<< endl;
}
:无效exchange_T0_O()/ /八进制转换
{
NUM = NUM;
> INT I = 0,J = 0;
(NUM)
{
了n [i + +] = NUM%;
NUM = NUM / 8; />}
{
法院<< N [ - ];
}
而(I);
法院< endl; BR p>}
无效exchange_T0_H()/ /转换为十六进制
{
数= NUM;
INT I = 0,J = 0; (NUM)
{
(NUM%16> 9)
M [+ +] = 55 + NUM%16;
其他M [+ +] = NUM%16 +48;
民= num/16;
}
{
法院<< M [ - ];
}
(I);
法院<< endl;
}
}
诠释的main()
{
数NUM;
cout <<“请输入:”<< endl;
NUM.input();
法院<<“二进制”;
NUM.exchange_T0_B();
法院<<“八进制”;
NUM.exchange_T0_O();
cout <<“请十六进制:”
NUM.exchange_T0_H();
0
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
偷懒一点的话,直接用输出流控制。。。你可以看一下cout的输出控制字符。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询