you can represent 16 different values with 4 bits.
0000 | 0001 | 0010 | 0011 |
0100 | 0101 | 0110 | 0111 |
1000 | 1001 | 1010 | 1011 |
1100 | 1101 | 1110 | 1111 |
Imagine trying to pack 10 pounds of shit into a 5 pound bag. ^_^
Like I said, you can store 16 different values with 4 bits. If you want to add another value, you're gonna have to add another space for it. I thought about some kind of compression scheme, where like you would take two bits, and output the first bit as the first value, and then output a 1 or 0 depending on if the second bit was the same as the first bit, but that turned binary into greycode with no reduction of size.
Fundamentally you cannot compress the most basic structure of digital data. You can only compress higher orders of data where there is some excess 'unused' space created by the data strucutre.
For example, BCD: it's not possible to compress a single BCD digit into smaller than 4 bits, but it wastes 6 values, so something like Chen-Ho can reduce 2 digit BCD from 8 bits to 7 bits, and 3 digit BCD from 12 bits to 10 bits.