如何用c语言实现十进制数与八进制数的互换?

来源:百度知道 编辑:UC知道 时间:2024/05/21 16:45:36
要在程序里实现两种进制数的互换,注意是互换,不是单向转换。谢谢了!

你应该把问题描述清楚。
我们知道,所有数据在计算机中都是以二进制存储的。
你所描述的是不是以字符串来存储数字对应的ASC码??

如果只是在输出上的区别的话很容易做到:
printf("%o",x);//以8进制输出
printf("%d",x);//以十进制输出

源码:(VC6.0调试通过)
#include<stdio.h>
void main()
{
char ch;
int x;

printf("请选择转换的类型:\n1 十进制转八进制 \n2 八进制转十进制\n");

ch=getchar();

switch(ch)
{
case '1':
printf("请输入一个十进制数:");
scanf("%d",&x);
printf("%d的八进制为%o\n",x,x);
break;
case '2':
printf("请输入一个八进制数:");
scanf("%o",&x);
printf("%o的八进制为%d\n",x,x);
break;
default:
break;

}
}

递归实现
int oct2dec(int n){//8进制转10进制
if (n/10==0) return n;
else return oct2dec(n/10)*8+n%10;
}
int dec2oct(int n){//10进制转8进制
if (n/8==0) return n;
else return dec2