用户输入一个十进制正整数,然后分别转换成为二进制数、八进制数和十六进制数输出。(是C++,不是C)

2024-11-13 03:00:02
推荐回答(5个)
回答1:

#include
using namespace std;
int main()
{
int a,b,c,d;
cout<<"请输入待转换的数:";
cin>>a;
//二进制分别计算每一位
if(a==0)cout< b=a;c=0;d=1;
while(b!=0)
{
c+=(b%2)*d;//依次把b除以2的余数写在c的对应位置上
b=b/2;
d*=10;
}
cout< //八进制和十六进制使用格式化输出即可,oct表示八进制,hex表示十六进制
cout< cout<}

如果有不懂请追问。

回答2:

#include
using
namespace
std;
int
main()
{
cout<<"该程序可以转换36进制之内的数,9之后的后续数为大写字母A-Z"<
>n;
cout<<"请输入您要转换成的进制:"<
>x;
chg10tox(n,x);
return
0;
}
void
chg10tox(int
n,int
x)
{
char
p[20];
int
t;
for(int
i=0;n;i++)
{
t=n%x;
n=(n-t)/x;
if(t>=0&&t<=9)
p[i]=t+48;
else
p[i]=t+65-10;
}
for(i=i-1;i>=0;i--)
cout<
评论
0
0
加载更多

回答3:

#include
using namespace std;
int main()
{
cout<<"该程序可以转换36进制之内的数,9之后的后续数为大写字母A-Z"<void chg10tox(int n,int x);
int n,x;
cout<<"请输入一个任意正整数:"<cin>>n;
cout<<"请输入您要转换成的进制:"<cin>>x;
chg10tox(n,x);
return 0;
}
void chg10tox(int n,int x)
{
char p[20];
int t;
for(int i=0;n;i++)
{
t=n%x;
n=(n-t)/x;
if(t>=0&&t<=9)
p[i]=t+48;
else
p[i]=t+65-10;
}
for(i=i-1;i>=0;i--)
cout<cout<}
望采纳,谢谢

回答4:

有输出格式设置的,

#include
#include

int main()
{
int num=123;
cout << hex << num << endl; //十六进制
cout << oct<< num << endl; //八进制
cout << dec<< num << endl; //十进制
}

回答5:

有一个转换函数很好用:
char *itoa(int value, char *string, int radix);
int value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等
头文件: itoa操作使用

但注意:这个不是C++标准库函数,只能在Visual C++系列编译器环境下使用
想在GCC上做的话,可以设置输出格式,也可以自己编函数进行转换……