puchar(‘0’+r)为何要这样写啊 多谢
puchar(‘0’+r)为何要这样写啊 谢谢将一个整数转换成二进制形式。void to_binary(unsigned long n)/* recurs
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比較方便