可不可能将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编程的书籍"
此问题由李海回答。
| |
|
|
| |
|
|