Even–Rodeh coding
Appearance
	
	
Even–Rodeh code is a universal code encoding the non-negative integers developed by Shimon Even and Michael Rodeh.[1]
Encoding
[edit]To code a non-negative integer N in Even–Rodeh coding:
- If N is not less than 4 then set the coded value to a single 0bit. Otherwise the coded value is empty.
- If N is less than 8 then prepend the coded value with 3 bits containing the value of N and stop.
- Prepend the coded value with the binary representation of N.
- Store the number of bits prepended in step 3 as the new value of N.
- Go back to step 2.
To decode an Even–Rodeh-coded integer:
- Read 3 bits and store the value into N.
- If the first bit read was 0then stop. The decoded number is N.
- If the first bit read was 1then continue to step 2.
 
- If the first bit read was 
- Examine the next bit.
- If the bit is 0then read 1 bit and stop. The decoded number is N.
- If the bit is 1then read N bits, store the value as the new value of N, and go back to step 2.
 
- If the bit is 
Examples
[edit]| Number | Encoding | Implied probability | 
|---|---|---|
| 0 | 000 | 1/8 | 
| 1 | 001 | 1/8 | 
| 2 | 010 | 1/8 | 
| 3 | 011 | 1/8 | 
| 4 | 100 0 | 1/16 | 
| 5 | 101 0 | 1/16 | 
| 6 | 110 0 | 1/16 | 
| 7 | 111 0 | 1/16 | 
| 8 | 100 1000 0 | 1/256 | 
| 9 | 100 1001 0 | 1/256 | 
| ︙ | ||
| 15 | 100 1111 0 | 1/256 | 
| 16 | 101 10000 0 | 1/512 | 
| ︙ | ||
| 2761 | 100 1100 101011001001 0 | 1/1,048,576 | 
| ︙ | ||
See also
[edit]References
[edit]- ^ Even, Shimon; Rodeh, Michael (April 1978). "Economical encoding of commas between strings". Communications of the ACM. 21 (4): 315–317. doi:10.1145/359460.359480.
