void print_binary(int number)
{
if (number){
print_binary(number/2);
putc((number % 2) ? '1' : '0', stdout);
}
}
int main(void) {
print_binary(8);
}
The code above returns "1000".
But when I reverse the two lines in print_binary()
and write it like this:
void print_binary(int number)
{
if (number){
putc((number % 2) ? '1' : '0', stdout);
print_binary(number/2);
}
}
the string is "0001".
I can't understand why this happens. Any explanation is appreciated. Thanks