Я пытаюсь понять, как работает putchar('0' + r);
. Ниже функция принимает целое число и преобразует его в двоичный.Что делает putchar ('0' + num); делать?
void to_binary(unsigned long n)
{
int r;
r = n % 2;
if (n >= 2)
to_binary(n/2);
putchar('0' + r);
}
Я Google определение putchar, но я не нашел это. Чтобы проверить это, я добавил Printf, чтобы увидеть значение R:
void to_binary(unsigned long n)
{
int r;
r = n % 2;
if (n >= 2)
to_binary(n/2);
printf("r = %d and putchar printed ", r);
putchar('0' + r);
printf("\n");
}
и я бегу он (набрал 5) и получил этот результат:
г = 1 и putchar напечатаны 1
г = 0 и putchar распечатаны 0
R = 1 и putchar распечатаны 1
Итак, я полагаю, что putchar('0' + r);
печатает 0, если r = 0, иначе печатает 1, если r = 1, или что-то еще происходит?
+1 для усилий – yaylitzis