2017-02-13 70 views
-1

给定一个范围在0-3之间的8个数字的数组,是否可以将其压缩到少于2个字节?是否可以将8个数字(0-3)压缩到少于两个字节?

即:

INT []数组= {3,2,0,0,1,0,2,2}

通过结合3,2,0,0一起和1,0 ,2,2在一起我可以创建字节11100000(224)和01001010(74),但我很好奇,如果它可能有任何其他方式通过编码减少到少于2个字节?

+0

如果您添加一些样本或关于输入和输出的更多详细信息,那将会很棒] –

+2

每个数字和8个数字有4个可能的值。这意味着4^8或2^16个不同的组合。鉴于没有其他数字约束,这表明你将需要16位或2个字节。 –

+1

从0-3的数字需要2个二进制位来存储,所以它们中的8个是16位(即2个字节) – DavidG

回答

1

8数字与4个选择每将使4 = 2 (8⋅2)不同组合,所以就需要有两个字节来编码所有这些。

根据您输入的信息,它可以有可能寻找到典型输入被编码到不到两个字节的ecoding。但是你为非典型输入需要超过两个字节而付出代价。

相关问题