2010-05-18 57 views
0

我有一个很长的整数列表,我需要将其减少到一个整数。整数列表可以是从0到300整数(大约)的任何地方。我需要能够编码/解码。intger编码和解码问题

有没有比查找表更好的选择?

+2

定义“将其减少为单个整数” – 2010-05-18 21:55:23

+0

是否将所有整数连接成一个被视为“reduce”的超长整数? :O – 2010-05-18 22:07:11

回答

0

任何用于将N位数据减少为M位数据的技术,其中M小于N只能用于某种方式冗余的输入。减少300:1将需要输入中的冗余量(例如,几乎所有的数字都是零)。

+0

是杰里多数民众赞成在我的想法。在大多数情况下,它将是最0的,但其他时间不会。我会比我的32位整数多得多。 只是把这个简单的路线和查找表。在我开始这个狗屎之后的3个月里,这是他们改变要求的错。 – asdasd 2010-05-18 22:00:57

0

如果您想要保存一些空间,并且您的32位整数列表在统计上围绕一定范围的值进行聚集,则可以使用整数压缩。

.NET对IL程序集中的方法元数据使用整数压缩。这个想法是,如果整数通常很小(例如1-100),则可以使用远远少于32位的编码来节省空间。根据你的方案,你将不得不牺牲一点或两点来告诉压缩器/解压缩器你是小值还是大值。请参阅here了解.NET如何执行此操作