首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数学-来自几个数字的大数字-可导出

数学-来自几个数字的大数字-可导出
EN

Stack Overflow用户
提问于 2011-07-17 05:30:33
回答 2查看 70关注 0票数 0

假设我有一些数字,比如

代码语言:javascript
复制
5,10,7,8,9,6,2,4,8,5,3,9,78,5,6

我需要将它发送到另一台计算机,但作为可能的最小字节数。我知道有一种方法可以做到这一点,我只是忘记了它的名称和工作原理,但通常会用这些数字做一些数学计算,得到一个大数字,然后从这个数字中导出数据,并从这个数字中获得这个数字。提前谢谢。

编辑OK,所以我需要在UDP中发送此文本,但我需要尽可能少的比特。我发送了一些选项,比如firstcolor- some颜色,假设我有15种颜色。每种颜色都是数字,从1到199,但也许有更好的方法来发送这些数据?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-17 05:39:37

没有人能说出哪种压缩方案最适合你。我们没有任何关于这些数字的信息。但作为第一次尝试,您可以将它们写入一个文件并对其使用gzip压缩。或者bzip2,或者7zip

只有当所有这些都不起作用时,你才应该考虑自己做压缩。

你也没有告诉我们你的操作系统(源计算机,目标计算机)以及你从哪里获得数据。

根据问题中的编辑进行更新:基本上,您希望发送范围在1到199之间的一些数字。这与单个byte可以容纳的内容非常接近。

如果每个数字使用8位是可以的(意味着每个数字浪费0.4位),这是微不足道的,但在很大程度上取决于编程语言。下面是它在Java语法中的样子:

代码语言:javascript
复制
ByteBuffer buf = new ByteBuffer();
buf.add(1);
buf.add(199);
buf.add(78);
buf.add(7);

udpSocket.send(buf.toArray());
票数 1
EN

Stack Overflow用户

发布于 2011-07-17 05:47:39

获取一个压缩库(例如zlib )并输入您的数字(例如,以整数数组的形式)。这是在压缩你的数据。同样的库应该允许您反转过程并解压缩另一端的数据,以获得您的值。

如果你想提高你的算法知识,并且你的需求是简单和非关键的,我建议你尝试编写你自己的压缩/解压缩代码。如果没有,从架子上拿一些代码--周围有很多好的库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6720374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档