进制转换问题
今天小编了一个程序,实现小于65535的10进制到8进制的转换程序代码如下:
# include"stdio.h"
# include"math.h"
void convert10_8(int num)
{
int array[6]={0};
int i=5;
int a,j;
for(a=num; a>0; a=a/8)
{
array[i]=a%8;
--i;
}
printf("10_8 output is=");
while(array[i]==0)
{
++i;
}
for(j=i; j<6; j++)
printf("%d",array[j]);
printf("\n");
}
main()
{
int num;
while(1)
{
printf("input one number:\n");
scanf("%d",&num);
convert10_8(num);
}
}
按理说65535对应的8进制应该是177777,意味着只需要array[]只需要6位八进制表示即可,但程序输出确实1177777.如果把array[]改为7位,那么程序执行结果是没错的,为177777
请大家帮我分析下这段程序~~谢谢