如果n为13,二进制为1101
那么程序执行是这样的:
dtob(13)
{
13的二进制为1101,去掉最后一位后变成110,即13/2=6,进行dtob(6)
输出最后一位1,即13%2=1
}
dtob(6)
{
13的二进制为110,去掉最后一位后变成11,即6/2=3,进行dtob(3)
输出最后一位0,即6%2=0
}
dtob(3)
{
13的二进制为11,去掉最后一位后变成1,即3/2=1,进行dtob(1)
输出最后一位1,即3%2=1
}
dtob(1)
{
13的二进制为1,去掉最后一位后没有了
输出最后一位1,即3%2=1
}
最后就是
dtob(13)
{
dtob(6)
{
dtob(3)
{
dtob(1)printf 1 -------1
printf 1 --------------1
}
printf 0 -------------------0
}
printf 1 -----------------------1
}
追问明白了。谢谢。