热情软件屋

 

可不可能将N个字节二进制数据变成N个字节的可见字符


编号:QA003442
建立日期: 2000年10月23日 最后修改日期:2000年10月23日
所属类别:

lkh:
    操作系统: windows.linux.unix
    编程工具: c或c++
    问题: 各位大虾帮个忙!!
    有一段二进制数据占N个字节,需要一种算法,使之能变成N个字节的可见字符并能还原为原二进制数据。但不能有另外的数据输出或输入。
    水平: 中级

回答:

    从理论上讲,你的要求是无法实现的。因为一个字节有256种状态,而可见字符的数目要远远少于256个,所以进行任何这样的处理后,数据长度都要增加,象Base64处理后,数据长度增加N/3。你也可能会想能不能先采用压缩软件压缩再使用编码方法进行编码。这对于某些数据来说是可能的,因为这些数据存在着较多冗余,可以被压缩存储。但对于另外一些数据(如已经被压缩过的数据),你是无法压缩的,这样编码后肯定会增加长度。所以除非你的数据可以被压缩(压缩比要超过33%),你不可能实现这样的要求。
    
    
    相关问题:
    QA001623 "如何在winnt中屏蔽ctrl+alt+del等组合键"
    QA003439 "DDK是什么"
    QA001005 "有关DDK编程的书籍"

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio