Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >如何在C#中实现Huffman代码压缩和解压缩

如何在C#中实现Huffman代码压缩和解压缩
EN

Stack Overflow用户
提问于 2018-04-28 11:39:51
回答 1查看 1K关注 0票数 0

我有一个关于Huffman编码的任务,使用Huffman代码压缩和解压缩文本文档。我已经创建了一个Huffman树,其中每个节点都包含有计算好的Huffman代码的BitArray。

主要问题是对输入文件进行有效编码。我不知道如何保存编码的字节(通过将BitArray转换成字节数组)而不造成代码之间的冲突?

示例:有两个Huffman代码e= 101和i= 0101。当它们被转换为字节时,它们被表示为e= 00000101和i= 00000101。

如何避免这种情况,是否有更好的方法对文件进行编码?

压缩和解压缩1毫安字符的文件的预期时间是多少?

(现在我正在创建一个包含所有编码位的BitArray,然后将其转换为byte[]并保存它,女巫花费了太多的时间和内存。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-29 07:52:18

假设您的输出是一个位串,而不是字节。您可以将代码连在一起,每个代码都有任意数目的位( 3、4、15 ),不管是什么,使用一个整数(例如,32位)作为位缓冲区。当您累积超过8位时,您将输出一个字节并将其从缓冲区中移除。最后,如果剩不到8位,则用零位填充其余部分,并写出最后一个字节。您可以使用shift和或操作来操作位缓冲区中的位。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50080396

复制
相关文章
Huffman无损压缩和解压算法实现
高中学信息论的课后作业,本来自己的项目文档和中期汇报还没写,为了强行装x答应了下来,结果硬是熬夜到四点才敲完。。。。(以后绝不装逼了)
mythsman
2022/11/14
3850
C#使用#ziplib压缩和解压缩文件
要下载整个目录,一般方法是一个个文件下载或ftp工具 现在用SharpZipLib就能实现实时zip压缩下载整个目录
全栈程序员站长
2022/09/19
6830
Java中zip的压缩和解压缩
在Java中可以使用ZipOutputStream和ZipInputStream来实现zip的压缩和解压缩操作,另外使用FileSystem也可以用来实现zip的解压缩,下面将介绍这几种方式,直接上代码。
布禾
2021/03/04
2.8K0
Java中zip的压缩和解压缩
C# ZIP文件的压缩和解压缩(SharpZipLib.dll)
真是折腾呀,网上虽然有不少的源码但测试几个就是不成功,经过折腾还是折腾出来了现在分享出来给大家。
全栈程序员站长
2022/09/17
1.1K0
Node zip压缩和解压缩
NodeJS 文件(夹)压缩/解压方案(zip/unzip)-Linux 上 zip 相关命令
chuchur
2022/10/25
2.9K0
centos--压缩和解压缩
tar -cf /tmp/allfile.tar /tmp/allfile 打包文件 c–create 生成文件的位置 源文件位置
ruochen
2021/11/18
7610
Python压缩和解压缩实践
工作需要,将已经打好的war包解压出来,重新压缩WEB-INF中的classes文件夹到WEB-INF.zip
zhangheng
2020/04/28
1.2K0
文件压缩和解压缩 - zipfile模块
from zipfile import ZipFile with ZipFile("newZipped.zip", "w") as myzip: myzip.write(r"eggs.txt") # 写入到压缩文件 myzip.write(r"新建 Microsoft Excel 97-2003 工作表 (3).xls") # 可以压缩多个文件 print(myzip.namelist()) with ZipFile("newZipped.zip", "r") as myzip
用户6021899
2020/12/29
8950
使用Python实现文件压缩和解压
大家可能都熟悉.zip格式的文件。它可以把多个文件,压缩成一个文件。这在网络上传输时很有用,而且节省硬盘空间。
TalkPython
2019/05/24
2.9K0
浅谈.Net Framework中压缩和解压
ZipFile类是一个工具类,它有许多静态方法,可以帮助打开zip文件、提取数据、将目录压缩成zip文件、将zip文件提取到文件夹等等。
小蜜蜂
2019/07/23
1.4K0
浅谈.Net Framework中压缩和解压
Linux 下的压缩和解压缩
下面我们就分别讲一下在 Linux 下如何用不同的方式对文件进行打包、压缩和解压缩
Ryoma
2022/04/02
2.5K0
基于Huffman编码的压缩软件的Python实现
哈夫曼编码是利用贪心算法进行文本压缩的算法,其算法思想是首先统计文件中各字符出现的次数,保存到数组中,然后将各字符按照次数升序排序,挑选次数最小的两个元素进行连结形成子树,子树的次数等于两节点的次数之和,接着把两个元素从数组删除,将子树放入数组,重新排序,重复以上步骤。为了解压,在压缩时首先往文件中填入huffman编码的映射表的长度,该表的序列化字符串,编码字符串分组后最后一组的长度(编码后字符串长度模上分组长度),最后再填充编码后的字符串。本算法中以一个字节,8位作为分组长度,将编码后二进制字符串一一分
forrestlin
2018/05/23
1.5K0
Linux基础命令——压缩和解压缩命令
1. 压缩格式的介绍 Linux默认支持的压缩格式: .gz .bz2 .zip 说明: .gz和.bz2的压缩包需要使用tar命令来压缩和解压缩 .zip的压缩包需要使用zip命令来压缩,使用unzip命令来解压缩 压缩目的: 节省磁盘空间 2. tar命令及选项的使用 命令 说明 tar 压缩和解压缩命令 tar命令选项: 选项 说明 -c 创建打包文件 -v 显示打包或者解包的详细信息 -f 指定文件名称, 必须放到所有选项后面 -z 压缩或解压缩(.gz) -j 压缩或解压缩(.bz2) -x
落雨
2022/03/10
31.4K0
Python压缩和解压缩文件(zip/unzip)
通过zipfile模块实现对文件、文件夹的zip压缩和解压 #打包成zip文件 import zipfile f = zipfile.ZipFile('archive.zip','w',zipfile.ZIP_DEFLATED) f.write('file_to_add.py') f.close() 从zip文件解包 import zipfile zfile = zipfile.ZipFile('archive.zip','r') for filename in zfile.namelist():
用户8983410
2021/11/03
1K0
使用zlib/gzip压缩和解压缩?(Flash和GALGAME使用的压缩格式)[通俗易懂]
甚至Flash格式版本6以后,增加了可压缩选项,用的是ZLib压缩(wxd:jrj.com.cn金融界flash数据就是这样,减少传输量)
全栈程序员站长
2022/09/13
7750
linux压缩和解压缩命令大全「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/105897.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/09
5320
Linux——常用命令(压缩和解压缩)
 在Linux中可以识别的常见压缩格式有几十种,比如.zip、.gz、.bz2、.tar、.tar.gz、.tar.bz2等,Linux不支持.rar和.tz格式的压缩文件。  1、.zip格式:zip是Windows中最常见的压缩格式,Linux也可以正确识别,zip命令所在目录为/usr/bin/zip,所有用户可以执行,用来压缩文件或目录   命令格式:
全栈程序员站长
2022/06/26
9690
Linux——常用命令(压缩和解压缩)
点击加载更多

相似问题

Huffman压缩

20

Huffman码压缩

13

C# LZW压缩和解压缩

160

C#中的Gzip压缩和解压缩

11

如何在压缩后展开huffman节点

117
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文