答案为什么啥是1100111,不懂,请请教

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img


#include <stdio.h>

void A(int num, int base)
{
    if (num > 0)
    {
        A(num / base, base);
        printf("%d", num % base);
    }

}
//103 2 -1
//51 2 -1
//25 2 -1
//12 2 -0
//6 2  -0
//3 2  -1
//1 2  -1
//0.5 2
int main()
{
    A(103, 2);
    return 0;
}

这是一个递归问题。因为是函数的参数是int类型,到最后0.5的时候,if的条件就不满足了。从下往上打印,就是答案里的1100111

递归调用,把数num转化以base为基的进制数输出。