您的位置:首页 > 其它

将十进制数转化成八进制数

2016-12-07 14:18 225 查看
    遇到一道将十进制转化成八进制数的C语言题,并且不能用%o,这就需要明白如何将十进制转化成八进制。

    一般的算法是将这个数对8取余,再保存下来,然后让这数除以8(也就是左移,从个位移动到十位)之后再取余,每次取余得到的结果都保留下来放到一个数组中。但是由于一开始保留下的值是作为低位,而放在数组中是从a[0]开始,所以要逆序输出,最后就可以得到八进制数了!

    而对于十进制转化成R进制的程序,只需要将8换成R即可。

     本题的源程序如下:#include <stdio.h>

int main()
{
int a[100];
int temp;
int i;
int n;
int j;
printf ("请输入一个十进制数:\n");
scanf ("%d",&n);

for (temp = 0; temp <100; temp++)
{
if (n != 0)
{
i = n % 8;
a[temp] = i;
n = n / 8;
}
else
{
break;
}
}

printf ("转换的八进制数为:\n");
for (j = temp; j >= 0; j--)
{
printf ("%d",a[j]);
}
printf ("\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: