是否可以将8个数字(0-3)压缩到少于两个字节?

时间:2017-02-13 02:07:03

标签: c# math encoding compression encode

给定8个数字的数组,范围在0-3之间,是否可以将其压缩为小于2个字节?

即:

int [] array = {3,2,0,0,1,0,2,2}

通过将3,2,0,0和1,0,2,2组合在一起,我可以创建字节11100000(224)和01001010(74),但我很好奇是否可能有任何其他方法来减少这个通过编码可能少于2个字节?

1 个答案:

答案 0 :(得分:1)

每个有4个选项的8个数字将允许4个 8 = 2 (8⋅2)不同的组合,因此您需要有两个字节来编码所有这些组合。

根据输入的详细信息,可能可以找到典型输入被编码为少于两个字节的ecoding。但是,通过为非典型输入需要两个以上的字节来为此付出代价。