在一个字节中压缩3个数字数据

Compressing 3 number data in a byte

所以,我正在使用C,并且我有6种命令编号,如0-5,想将其中的3种组合起来,并将组合保存在单个字节中。所以问题是我如何对这些数字进行编码?例如,如果我使用二进制编码,所以 5 是 101,那么我不能保存 555,因为 101101101 有 9 位,一个字节只有 8。 感谢您的关注。

将三个数看成一个三位六进制数,计算其值:

value = num1 * 36 + num2 * 6 + num3

num1 = value / 36
num2 = (value / 6) % 6
num3 = value % 6

该值将在 0 到 215 的范围内,因此它适合一个字节。