社区
C语言
帖子详情
压缩算法的实现,如何把编码后的二进制合并。
last_escape
2003-06-09 11:52:57
我做的是一个用huffman编码的压缩程序,编码已经编好了。但如何把二进制合并
让他们少占空间呢?比如编码 A: 110 B: 010 C: 101
我用哪种类型的变量储存编码?又怎么把他们合并后减少空间呢?
或者只要写进文件时合并也行?
...全文
159
9
打赏
收藏
压缩算法的实现,如何把编码后的二进制合并。
我做的是一个用huffman编码的压缩程序,编码已经编好了。但如何把二进制合并 让他们少占空间呢?比如编码 A: 110 B: 010 C: 101 我用哪种类型的变量储存编码?又怎么把他们合并后减少空间呢? 或者只要写进文件时合并也行?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
boyfling
2003-06-14
打赏
举报
回复
如果是:
A: 110
B: 010
C: 101
你可以用一个16位的整型来表示5个字符编码,因为这样最多至浪费1位,可以设定为最高位。其实最高位还可以用来表示这16位是否已经装满5个字符,假若未装满,可置为0,反之为1。
具体用移位就可以实现了。
qhgary
2003-06-10
打赏
举报
回复
可是位数并不一定是8的整数倍,你如果补零凑上了,怎么还原?
xzygod
2003-06-10
打赏
举报
回复
掩码,按位屏蔽
last_escape
2003-06-10
打赏
举报
回复
有什么更好的办法么?
last_escape
2003-06-09
打赏
举报
回复
convert是什么函数?是标准库里的么?
luyiping
2003-06-09
打赏
举报
回复
可以把你们编好的程序发给我看看吗?
bill_lyp@163.com
谢谢了
kicool
2003-06-09
打赏
举报
回复
前几天我也做了这个多媒体作业,我是用字符串暂时存储0,1串,然后取8位,转换成char型的二进制,写入文件。
例如:
A B A C A
110 010 110 101 110
string temp = "110010110101110"
string write = "11001011"
char s = convert(write)
WriteToFile(s)
last_escape
2003-06-09
打赏
举报
回复
xzygod(xzygod) 你的程序能讲解一下么
static BYTE bytenew=0;
static WORD mask[16]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768};
这是干什么的?掩码么?
xzygod
2003-06-09
打赏
举报
回复
void JpegEnc::WriteBinStream(HUFFCODE huffCode)
{
CHAR codeLen = huffCode.length - 1; // 计算码长
WORD value = huffCode.code;
while (codeLen >= 0)
{
if (value & mask[codeLen])
{
bytenew |= mask[bitPos];
}
--codeLen;
--bitPos;
if (bitPos < 0)
{
CacheWriteByte(bytenew);
if (bytenew == 0xFF)
{
CacheWriteByte(0x00);
}
bitPos = 7;
bytenew = 0;
}
}
}
INT bitPos; //当前字节中Bit位置
static BYTE bytenew=0;
static WORD mask[16]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768};
用Java
实现
基本的文件
压缩算法
文件压缩可减小文件大小,节省存储和传输资源。本文介绍了文件
压缩算法
,包括无损和有损压缩。重点阐述哈夫曼
编码
基本原理,如频率分析、构建哈夫曼树等。还详细说明了用Java
实现
哈夫曼
编码
压缩算法
的步骤,包括构建树、生成
编码
、文件压缩与解压缩,最后进行了总结与扩展。
zip
压缩算法
分析(2)
本文深入分析了zip
压缩算法
中Huffman
编码
的原理和
实现
,包括
编码
树的概念、Huffman
编码
算法、zip如何使用和
实现
Huffman树。通过详细解读源码,阐述了length、literal和distance数据的组织方式,以及建树和
编码
的过程。
数据结构课程设计实战——霍夫曼
编码
与
压缩算法
实现
本文围绕霍夫曼
编码
的原理与
实现
展开,详细讲解了霍夫曼树的构建、字符频率统计、
编码
与解码流程,以及栈、队列和最小堆等数据结构的应用。通过课程设计实践,帮助学生掌握
压缩算法
的核心逻辑与
实现
技巧,并对比分析了霍夫曼
编码
与其他
压缩算法
(如RLE、LZW)的优劣。
使用Java
实现
哈夫曼
编码
(Huffman Coding)
本文深入探讨哈夫曼
编码
的原理及其在
压缩算法
中的应用,通过具体实例讲解如何构建哈夫曼树,以及如何利用哈夫曼树进行
编码
和解码,最后提供了详细的Java代码
实现
。
61种
压缩算法
与20种
编码
标准模块包实战解析
本文深入解析集成61种主流
压缩算法
(如Huffman、LZSS、LZW、RLE、算术
编码
)和20种
编码
标准(含Base64)的综合模块包。重点阐述各算法原理、优化
实现
(如Huffman树构建与多线程压缩、LZSS懒惰匹配与哈希加速、LZW动态字典、RLE多通道变体、算术
编码
整数
实现
)及组合策略(Comp_Combiner、Comp_GroupSmart),覆盖图像、文本、
二进制
数据等典型场景,强调模块化接口设计与算法动态选型机制。
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章