我正在尝试这个简单的 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
确实是十进制的 86
。
在主题中,以 0x
开头的数字也是十六进制的(以 16 为底),例如 0x1a5
。
关于c - 除数的简单 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14772793/