#include<iostream>
using namespace std;
void toBinary(unsigned long n)
{
int i;
i = n % 2;
if(n >= 2)
toBinary(n/2);
putchar(i==0?'0':'1');
return;
}
int main()
{
toBinary(9);
}
有人可能会纳闷,数字是不是倒序输出了?因为第一个i其实是最后一位数,但是在if判断之后程序使用putchar输出了i。
但实际上并不是这样的,if结构使函数进入了递归中,导致最先输出执行putchar语句的反而是递归最深层,也就是二进制第一位!!!