社区
C语言
帖子详情
压缩算法的实现,如何把编码后的二进制合并。
last_escape
2003-06-09 11:52:57
我做的是一个用huffman编码的压缩程序,编码已经编好了。但如何把二进制合并
让他们少占空间呢?比如编码 A: 110 B: 010 C: 101
我用哪种类型的变量储存编码?又怎么把他们合并后减少空间呢?
或者只要写进文件时合并也行?
...全文
76
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};
AlgorithmClub:练习
算法
迭代
二进制
搜索 递归
二进制
搜索 计数发生 查找最大值和最小值 移位零 找到两个索引求和 找到边缘的最大周长 打印
压缩
数字 快速分类
合并
排序 路口 计数排序
二进制
搜索树 追加中 包含 横移 倒相 拆下 单链表 删除...
java源码包---java 源码 大量 实例
通过网络或磁盘等方式,把公钥
编码
传送给李四,李四接收到张三
编码
后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 ...
java源码包2
通过网络或磁盘等方式,把公钥
编码
传送给李四,李四接收到张三
编码
后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 ...
二进制
哈夫曼
编码
c语言
实现
,
二进制
霍夫曼
编码
通过查看其他博客的内容,整理一篇关于
二进制
霍夫曼
编码
的笔记供...霍夫曼
编码
(Huffman Coding)是一种
编码
方式,是一种用于无损数据
压缩
的熵
编码
(权
编码
)
算法
,通常用于无损数据
压缩
。(详见维基百科:https://en.wi...
二进制
霍夫曼
编码
通过查看其他博客的内容,整理一篇关于
二进制
霍夫曼
编码
的笔记供大家参考...霍夫曼
编码
(Huffman Coding)是一种
编码
方式,是一种用于无损数据
压缩
的熵
编码
(权
编码
)
算法
,通常用于无损数据
压缩
。(详见维基百科:...
C语言
69,378
社区成员
243,075
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章