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

zpw*_*pal -1 c c++ compression encoding encode

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

int*_*jay 8

将这三个数字视为三位数的基数为6的数字,并计算其值:

value = num1 * 36 + num2 * 6 + num3

num1 = value / 36
num2 = (value / 6) % 6
num3 = value % 6
Run Code Online (Sandbox Code Playgroud)

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