David's puzzle on April 6th was a lot of fun to work with. If you want to see my answer, read the first few pages of:
My answer to David’s puzzle is:
This snippet of code coverts information from one encoding into a more intuitive
encoding that includes error detection.
This program receives information encoded in the following token format:
1. ‘3’ is a binary 1
2. ‘1’ is a binary 0
3. ‘0’ is Not a Number
4. Example: 131131 represents binary ‘010010’
5. All the tokens are either 5 or 6 bits long.
The received information is output with the following characteristics:
1. An 8-bit byte is returned.
2. The received token is left justified in a binary 8-bit number.
3. A control sequence in the least-significant bits indicating:
a. How many of the most-significant bits are in the number.
b. If it is a 6-bit number, the least significant bit (extra bit) of the 6-
bits is repeated to improve error detection.
c. A unique code (‘111’) is returned if the token was Not A Number.