>>764
再帰的に書けばいいという事
最初に 0 0x10000 16 16 の4つを渡して

先頭で最後の引き数を1減らす 16->15...0と
  これが0になったら2番目を出力して終わり
  でなければ、自分自身を2度呼び出す
 1番目は 0+,0x10000/2,16,15
 2番目は 0+0x10000/2,0x10000/2,15,15

結果、最後の引き数が0の時は、1番目の引き数は2進数を順を刻むことになり3番目の引数が目的