哪位大神能给小弟弄出这段代码,谢谢了。
#include<stdio.h>main(){int a,i,b=0,j;printf("input a:n");scanf("%d",&a); /*输入要转换的十进制数*/for(i=1;;i++){int tmp=a%8; /*依次获得转化为八进制时的个位数(从高到低)*/for(j=1;j<=i;j++){tmp*=10;}tmp/=10;b+=tmp; /*将各位转化为十进制存储起来(以十进制的形式呈现,但在计算的时候已经是八进制)*/a/=8;if(a==0)break; /*如果最后一位不满8,结束循环*/
}printf("%dn",b); /*打印完成转换的数*/}
进制的转换是十分严谨困难的数学问题,如果有人告诉你类似下面的答案,你千万不要相信
cout << oct << x <<endl; printf("%o",x);
计算机的进制只有二进制一种,你以为是十进制八进制七进制六进制的,最后都是二进制来处理,所以计算与进制无关,如果楼主是要把十进制转换成八进制来处理,,完全是想多了,不需要;如果你的输入是字符串的情况,十进制和八进制有多大区别吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(2)
#include<stdio.h>
main()
{
int a,i,b=0,j;
printf("input a:n");
scanf("%d",&a); /*输入要转换的十进制数*/
for(i=1;;i++)
{
int tmp=a%8; /*依次获得转化为八进制时的个位数(从高到低)*/
for(j=1;j<=i;j++)
{
tmp*=10;
}
tmp/=10;
b+=tmp; /*将各位转化为十进制存储起来(以十进制的形式呈现,但在计算的时候已经是八进制)*/
a/=8;
if(a==0)
break; /*如果最后一位不满8,结束循环*/
}
printf("%dn",b); /*打印完成转换的数*/
}
进制的转换是十分严谨困难的数学问题,如果有人告诉你类似下面的答案,你千万不要相信
计算机的进制只有二进制一种,你以为是十进制八进制七进制六进制的,最后都是二进制来处理,所以计算与进制无关,如果楼主是要把十进制转换成八进制来处理,,完全是想多了,不需要;如果你的输入是字符串的情况,十进制和八进制有多大区别吗?