我有一长串整数,我需要将其减少到一个整数。整数列表可以是0到300英寸长(约)的任何位置。我需要能够编码/解码。
是否有比查找表更好的选项?
答案 0 :(得分:0)
任何将N位数据减少到M位数据的技术,其中M小于N只能用于某种方式冗余的输入。减少300:1将需要输入中巨大的冗余量(例如,几乎所有数字都为零)。
答案 1 :(得分:0)
如果要保存一些空间,并且32位整数列表在统计上围绕某个值范围聚集,则可以使用整数压缩。
.NET对IL程序集中的方法元数据使用整数压缩。我们的想法是,如果整数通常较小(例如1-100),则可以使用远低于32位的编码来节省空间。根据您的方案,您将不得不牺牲一两个来告诉压缩器/解压缩器您是小值还是大值。
有关.NET如何做的更深入的解释,请参阅here。