? 我有个想法大家看看是否行得通,有关字符串压缩的! 本帖最后由 caozhy 于 2012-04-27 14:03:29 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 然后再将字符串转换为 长整形 long 类型的数 num,-----------怎么转换? .net 还真没有 将字符转换为 long 的函数~~~~~~ 如果不能定长,那就只能规定带压缩字符串的长度了,然后在规定压缩后字符串的长度,实现在一定范围内的定长吧!还有,想 winRar 那样的压缩算法,对于纯文本文件的压缩率能达到 85% 以上,达到这种效果也能在一定程度上保证定长了吧 不懂常识的人真可怕。lz估计还在上中小学吧再给你科普下,为什么WinRAR压缩文本可以得到很高的压缩率。我们知道,文本在电脑中使用ascii码表示。一个文本原始可能使用8bit二进制数表示,1~11111111,一共是255个可能。但是,对于大多数文本文件来说,只包含a-z0-9这大约36种可能。于是压缩算法调整了映射关系,让常见的编码拥有较短的形式,而不常见的拥有较长的形式。也就是说,如果文本中出现了一个'e'我们用01表示,如果出现了一个'ÿ'我们用01111111表示。虽然总体上看,我们让一部分编码比压缩前的长了,另一部分变短了。但是因为变长的出现的概率很低,变短的出现的概率很高,所以总体上看,文本被压缩了。 纯数学无损压缩是不现实的,但是你可以使用字典啊,尤其是英文,你可以对照牛津词典建个自己的库,比如1=apple ,2=word,3=hourse ..... ... 这样一来,还原的时候对照字典,就实现了最原始的压缩算法啦 确实没做过 压缩算法 方面的研究,开发时遇到了问题,首先想到的就是这个思路,有句话说的好“只有想不到的,没有做不到的”,我想就是个时间问题吧!谢谢‘caozhy’ 的积极参与,如果有机会深入研究 相关算法 ,可以向你请教!不过说实话,现在让我做些中学的题,我还真不会了呢!盖茨同学说过的话真好(好像是他说的),大概意思是说:“如果能快速查到的知识,就没必要记住它”这句话不同人有不同的理解吧! 本帖最后由 caozhy 于 2012-04-27 16:52:34 编辑 C# 套打 位置不准确 请问,这个List集合怎么没有跟着变化呢? 一个BigInteger类型的负数求绝对值 ADO.net用DataSet如何循环显示数据 c#开发条形码打印的问题 .net中怎样利用用户ID获取用户注册的用户名? 如何让一个linklabel运行时的内容不要是蓝色 并且 去掉不显示下划线? ********求简单正则**********在线等 请问,可以在一个cookie中,存放多个值吗? 有谁能给我讲讲C#中的访问属性吗?看得真是头都大了。 特别简单基础的xml问题!!! PPP协议的LCP链路包中的校验位怎么计算出来的?
.net 还真没有 将字符转换为 long 的函数~~~~~~
然后在规定压缩后字符串的长度,实现在一定范围内的定长吧!还有,想 winRar 那样的压缩算法,对于纯文本文件的压缩率能达到 85% 以上,
达到这种效果也能在一定程度上保证定长了吧
不懂常识的人真可怕。lz估计还在上中小学吧再给你科普下,为什么WinRAR压缩文本可以得到很高的压缩率。
我们知道,文本在电脑中使用ascii码表示。
一个文本原始可能使用8bit二进制数表示,1~11111111,一共是255个可能。
但是,对于大多数文本文件来说,只包含a-z0-9这大约36种可能。
于是压缩算法调整了映射关系,让常见的编码拥有较短的形式,而不常见的拥有较长的形式。
也就是说,如果文本中出现了一个'e'我们用01表示,如果出现了一个'ÿ'我们用01111111表示。虽然总体上看,我们让一部分编码比压缩前的长了,另一部分变短了。但是因为变长的出现的概率很低,变短的出现的概率很高,所以总体上看,文本被压缩了。
开发时遇到了问题,首先想到的就是这个思路,
有句话说的好“只有想不到的,没有做不到的”,
我想就是个时间问题吧!谢谢‘caozhy’ 的积极参与,如果有机会深入研究 相关算法 ,可以向你请教!不过说实话,现在让我做些中学的题,我还真不会了呢!盖茨同学说过的话真好(好像是他说的),大概意思是说:“如果能快速查到的知识,就没必要记住它”这句话不同人有不同的理解吧!