Even–Rodeh coding

Even–Rodeh code is a universal code encoding the non-negative integers developed by Shimon Even and Michael Rodeh.

Encoding
To code a non-negative integer N in Even–Rodeh coding:
 * 1) If N is not less than 4 then set the coded value to a single   bit.  Otherwise the coded value is empty.
 * 2) If N is less than 8 then prepend the coded value with 3 bits containing the value of N and stop.
 * 3) Prepend the coded value with the binary representation of N.
 * 4) Store the number of bits prepended in step 3 as the new value of N.
 * 5) Go back to step 2.

To decode an Even–Rodeh-coded integer:
 * 1) Read 3 bits and store the value into N.
 * 2) * If the first bit read was  then stop. The decoded number is N.
 * 3) * If the first bit read was  then continue to step 2.
 * 4) Examine the next bit.
 * 5) * If the bit is  then read 1 bit and stop.  The decoded number is N.
 * 6) * If the bit is  then read N bits, store the value as the new value of N, and go back to step 2.