读书人

puchar(‘0’+r)为何要这样写啊 多谢

发布时间: 2013-04-20 19:43:01 作者: rapoo

puchar(‘0’+r)为何要这样写啊 谢谢

将一个整数转换成二进制形式。
void to_binary(unsigned long n) /* recursive function */
{
int r;

r = n % 2;
if (n >= 2)
to_binary(n / 2);
putchar('0' + r); //这里用了putchar(),为何?直接用printf()不就完了吗?还有用putchar()也让人搞错。

return ;
}

[解决办法]
可以用printf。。在这里
putchar('0' + r);
printf("%d", r);
的输出效果是一样的。。
另外putchar('0' + r);中'0'+r代表了数字r的ASCII码编号。
[解决办法]
1. putchar输出字符时比printf方便
2.‘0’+ r 即求整型r的ASCII值
比如
整型 0, ASCII 48
整型 1, ASCII 49
'0'即字符0,也就是ASCII 48
[解决办法]
字符用putchar比方便

读书人网 >C语言

热点推荐