I get "01248" which are actually five seperate numbers. First "main(...)" calls "convert(...)" and passes it your number '17' in this case. '17' is greater then '0' so "convert(...)" is called again but this time it should be passed either '7' or '8', depending on if your compiler rounded up or down. Since those are both larger then '0' again they are divided again by '2' and passed to "convert(...)" again...
It goes on like that until num is '0'. Then starting with the last time that "convert(...)" was called, line 5 executes and prints what the number passed to it divided by 2 is.