墨文和 发表于 2021-11-1 23:08:35

求助下各位大佬们

想问一下这个进制转换的题目
#include <stdio.h>

void binary(unsigned long n);

void binary(unsigned long n)
{
      int r;

      r = n % 2;
      if (n >= 2)
      {
                binary(n / 2);
      }

      putchar('0' + r); // '0' + 1 == '1'   <--------------------这个是什么意思啊
}

int main(void)
{
      unsigned long number;

      printf("请输入一个正整数:");
      scanf("%lu", &number);

      binary(number);
      putchar('\n');

      return 0;
}

jackz007 发表于 2021-11-1 23:16:38

本帖最后由 jackz007 于 2021-11-1 23:18 编辑

putchar('0' + r) ; // 此句把变量 r 的数值转换成对应的数字字符并打印输出,比如当 r = 1 时,r + '0' 就是字符 '1',而 r 是 9 时,r + '0' 就是 '9'
页: [1]
查看完整版本: 求助下各位大佬们