任何人都可以帮我理解这段代码的执行情况吗?

时间:2017-02-02 04:08:09

标签: c

我是编程的初学者,我正在尝试理解将十进制转换为二进制的代码。代码如下:

#include <stdio.h>

int main()
{
  long int DN,quo;
  int rem[106],i=1,j;

  printf("give me a decimal number: ");
  scanf("%ld", &DN);

  quo = DN;

  while(quo!=0)
  {
     rem[i]= quo % 2;
     quo = quo / 2;
     i++;
  }

  printf("Equivalent binary value of your decimal number %ld\n: ",DN);

  for(j = i-1 ;j> 0;j--)
     printf("%d",rem[j]);
}

任何人都可以帮助我理解以while循环开头的部分吗?我很抱歉发布这么简单的问题。

2 个答案:

答案 0 :(得分:1)

假设输入十进制数为13

Step 1. 13/2 , Remainder = 1, Quotient = 6
Step 2. 6/2 , Remainder = 0, Quotient = 3
Step 3. 3/2 , Remainder = 1, Quotient = 1
Step 4. 1/2 , Remainder = 1, Quotient = 0

现在,二进制等值13是剩余的逆序:1101

答案 1 :(得分:0)

这是将数字转换为十进制表示的标准方法的实现。

  1. [quotentent,remaining] = a÷2
  2. d [i] = rest
  3. 如果商为0,我们就完成了
  4. 其他转到1
  5. 向后读d [i]并打印出来。