8进制转换10进制

来源:百度知道 编辑:UC知道 时间:2024/04/30 06:01:28
#include<stdio.h>
main()
{
unsigned long n,s;
unsigned long k=0;
int a[100];
printf("请输入10进制数:");
scanf("%d",&n);
while(n)
{
a[k]=n%2;
n=n/2;
k++;
}
s=k;
printf("转换好的2进制数为:");
for(k=s-1;k>0;k--)
{printf("%d",a[k]);}
printf("\n");
}

上面这个可以把2进制转换成10进制,但是把12、13行的2改为8,就是a[k]=n%8;n=n/8;按理说该代码可以变为8进制转换10进制,可是在vc++6.0上运行,就会出错,可我怎么也想不明白,望高手指教,本人刚学这个

原来的是十进制转二进制。改完以后不是八进制转十进制,是十进制转八进制。
#include<stdio.h>
main()
{
unsigned long n,s;
unsigned long k=0;
int a[100];
printf("请输入10进制数:");
scanf("%d",&n);
while(n)
{
a[k]=n%8;
n=n/8;
k++;
}
s=k;
printf("转换好的8进制数为:");
for(k=s-1;k>0;k--)
{printf("%d",a[k]);}
printf("%d\n",a[0]);
}

你是要将8进制转成10进制?代码如下
#include<stdio.h>
main()
{
unsigned long n,s;
unsigned long k=0;
int a[100];
printf("请输入8进制数:");
scanf("%d",&n);
while(n)//这个时候变成获取每个8进制位的数字
{
a[k]=n%10;
n=n/10;
k++;
}
s=k;
n=1;//将8进制转为10进制数
for(k=s-1;k>0;k--)
{n+=a[k]*8}
printf("转换好的10进制数为:");
printf("n\n");
}

//