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

时间:2017-10-20 09:19:26

标签: c++ c encoding compression encode

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

1 个答案:

答案 0 :(得分:8)

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

value = num1 * 36 + num2 * 6 + num3

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

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