c - 除数的简单 C 程序

标签 c math division

我正在尝试这个简单的 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/

相关文章:

c - 打印答案时出现段错误

c - 如何检查矩阵反对角线上的项是否相同?

algorithm - 所需的最少操作数

java - 计算角度的代码不起作用

linux - hdparm -tT/dev/sda 将结果抓取到变量中

c - C 宏中的函数定义

php - 动态生成词云?

c - 整数除法,四舍五入

assembly - 有符号整数相除后结果错误

c - C 中的重新分配错误