Although this has been said, it hasn't been explained:
The difference between using a field with a max of 128 and a max of 256 is only one bit, not 4. For those not yet versed in binary, that is to say:
for 87654321
| bit position | place value |
| 1 | 1 |
| 2 | 2 |
| 3 | 4 |
| 4 | 8 |
| 5 | 16 |
| 6 | 32 |
| 7 | 64 |
| 8 | 128 |
Now, shortening it to 7 bits would give you a 1/8 compression at the expense of not allowing any data that uses the 8th bit. I regard this as a mistake, because it can cause all kinds of problems, re: SMTP, AIX /dev/tty*
As an aside, this data set will probably be too short to get a decent compression because of different sorts of overhead. Maybe this is a creative use for
freeze/
thaw??? (that's from
Storable).
Update: 2 Mins later: Ah, I am aware that the OP wanted code reduction, not compression. Well, ignore the last of my ramblings.
mhoward - at - hattmoward.org