本帖最后由 caozhy 于 2012-04-27 14:03:29 编辑

解决方案 »

  1.   

    然后再将字符串转换为 长整形 long 类型的数 num,-----------怎么转换?
      

  2.   


    .net 还真没有 将字符转换为 long  的函数~~~~~~
      

  3.   

    如果不能定长,那就只能规定带压缩字符串的长度了,
    然后在规定压缩后字符串的长度,实现在一定范围内的定长吧!还有,想 winRar 那样的压缩算法,对于纯文本文件的压缩率能达到 85% 以上,
    达到这种效果也能在一定程度上保证定长了吧
      

  4.   


    不懂常识的人真可怕。lz估计还在上中小学吧再给你科普下,为什么WinRAR压缩文本可以得到很高的压缩率。
    我们知道,文本在电脑中使用ascii码表示。
    一个文本原始可能使用8bit二进制数表示,1~11111111,一共是255个可能。
    但是,对于大多数文本文件来说,只包含a-z0-9这大约36种可能。
    于是压缩算法调整了映射关系,让常见的编码拥有较短的形式,而不常见的拥有较长的形式。
    也就是说,如果文本中出现了一个'e'我们用01表示,如果出现了一个'ÿ'我们用01111111表示。虽然总体上看,我们让一部分编码比压缩前的长了,另一部分变短了。但是因为变长的出现的概率很低,变短的出现的概率很高,所以总体上看,文本被压缩了。
      

  5.   

    纯数学无损压缩是不现实的,但是你可以使用字典啊,尤其是英文,你可以对照牛津词典建个自己的库,比如1=apple ,2=word,3=hourse ..... ... 这样一来,还原的时候对照字典,就实现了最原始的压缩算法啦
      

  6.   

    确实没做过 压缩算法 方面的研究,
    开发时遇到了问题,首先想到的就是这个思路,
    有句话说的好“只有想不到的,没有做不到的”,
    我想就是个时间问题吧!谢谢‘caozhy’ 的积极参与,如果有机会深入研究 相关算法 ,可以向你请教!不过说实话,现在让我做些中学的题,我还真不会了呢!盖茨同学说过的话真好(好像是他说的),大概意思是说:“如果能快速查到的知识,就没必要记住它”这句话不同人有不同的理解吧!
      

  7.   

    本帖最后由 caozhy 于 2012-04-27 16:52:34 编辑