There are two important moments in this code:
binaryform(number >> 1);
first: recursion. Call function from this function (foo() {foo();} second: bitwise. >>1 - shift number for 1 bit, it's the same to devide by 2.
every recursion iteration, code devide number by 2 and print reminder AFTER recursion function works (from last to first). It's like:
{
{
{
{
print inner (fourth iteration
}
print before inner (third iteration)
}
print before before inner (second iteration)
}
print outer (first iteration)
}