将10进制数转化为16进制数和8进制数的c语言代码?

长整数的处理。假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:(C)
m=a[k]×10k-1+a[k-1]×10k-2+….+a[2]×10+a[1]
对于上题描述的10进制长整数,要求:(C)
(a) 转换为16进制数输出;
(b) 转换成8进制数输出。
必须要c,不要c++

#include <iostream>
using namespace std;
int a[100];int b[100] ;
void func(int x)//x此处是10进制数,转化成十六进制

{
int i=0; //i 为一个局部变量,在func函数中有用
while(x!=0)
{
a[i]=x%16;
x/=16;
i++;
}
for(int k=i-1;k>=0;k--)
{
cout<<a[k];
}
cout<<endl;
}
void func2(int y)
{
int i=0; // i 为一个局部变量在func2中有用
while(y!=0)
{
a[i]=y%8;
y/=8;
i++;
}
for(int k=i-1;k>=0;k--)
{
cout<<b[k];
}
cout<<endl;
}

void main()
{
int n;
cout<<"输入10进制数:"<<endl;
cin>>n;
cout<<"转化成十六进制:"<<endl;
cout<<"转化成八进制:"<<endl;
func(n);
func2(n)
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-01
#include <stdio.h>
int main()
{
int a;
printf("输入一个十进制数");
scanf("%d",&a);
printf("十六进制是:%x\n",a); //c语言中%d是十进制,%x是16进制
printf("八进制是:%o\n",a); //%o是八进制,%b是2进制
return 0;
}
相似回答