我试着用这个简单的C程序来除数。。
void main()
{
int i,j,k;
i=00126;
j=2;
k=i/j;
printf("%d",k);
}
它显示输出为43而不是63。。如果我再加一个0作为
i=000126;
现在我收到的错误是非法的八进制数字。
如果我试着
i=00000001000;
它没有显示任何错误,结果是256..我无法理解这个意外的输出。有人能解释为什么它会产生这样的输出吗?
请解释清楚。
编辑:如果我尝试
int i,j,k;
i=1000;
j=0002;
k=i/j;
printf("%d",k); //which gives 500 as result
最佳答案
在C语言中,以0
开头的数字是以8为基数(八进制)而不是十进制所以你的数字实际上是十进制的。
在主题中,以0126
开头的数字也是十六进制(以16为基数),例如86
。