这个不太懂结果为什么最后一位是1而不是0

#include <stdio.h>
void fun(int n)
{
if(n>0)
{
fun(n/2);
printf("%d",n%2);
}
}
void main()
{
fun(19);
printf("\n");
}

递归函数显示的时候从最后一层开始显示,最后一次显示的是n等于19时候的余数,所以是1

输出的是n%2,知道什么意思不?

你要搞懂这段代码的功能,你就知道这段代码会输出什么了。
1、代码主要实现求一个十进制数的二进制表示
2、19的二进制表达是10011,所以最后输出1