c语言疑问,关于putchar('0' + r)的写法。
发表于 : 2014-12-06 20:33
谢谢各位前面的答复。
通过递归,十进制转二进制问题。
最后一句putchar('0' + r) 为什么可以这样写。标准写法是putchar(r ? '1' : '0')
谢谢。
通过递归,十进制转二进制问题。
代码: 全选
#include "stdio.h"
void to_binary(unsigned long n);
int main(int argc, char const *argv[])
{
unsigned long number;
printf("Enter an integer (q to quit): \n");
while (scanf("%lu", &number) == 1) {
printf("Binary equivalent: ");
to_binary(number);
putchar('\n');
printf("Enter an integer (q to quit): \n");
}
printf("Done.\n");
return 0;
}
void to_binary(unsigned long n) {
int r;
r = n % 2;
if (n >= 2) {
to_binary(n / 2);
}
putchar('0' + r);
}
谢谢。