怎么用C++,把输入的十进制转化为二进制,八进制和十六进制输出呢?谢谢了。

2025-01-02 12:49:52
推荐回答(3个)
回答1:

#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< }
while(i);
cout<
}
void exchange_T0_O()//转为八进制
{
num=Num;
int i=0,j=0;
while(num)
{
n[i++]=num%8;
num=num/8;
}
do
{
cout< }
while(i);
cout<
}
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< }
while(i);
cout<
}
};
int main()
{
number NUM;
cout<<"输入:"< NUM.input();
cout<<"二进制:";
NUM.exchange_T0_B();
cout<<"八进制:";
NUM.exchange_T0_O();
cout<<"十六进制:";
NUM.exchange_T0_H();
return 0;
}

回答2:

#包括“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
}

回答3:

偷懒一点的话,直接用输出流控制。。。你可以看一下cout的输出控制字符。。。