24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1203  |  回复: 11

无知飞鱼

银虫 (初入文坛)

[求助] 信源编码怎么运用到实际 已有2人参与

各位大神,最近看了一些关于霍夫曼编码的介绍和代码实现。但是看到的编码结果都是以字符数组的形式存放的,而我们实际中编码的结果不应该是以二进制位来存放么?怎么把这种字符串形式的编码转换成直接对二进制位的操作呢?

看过一些霍夫曼编码实现过程,比如A对应的编码是0010,一般编码实现时是分别将‘0’、‘0’、‘1’、‘0’作为占有八位二进制位的字符放进字符数组中;但是我们实际编码时应该是把它们分别当做一位二进制位来看,把编码结果放到二进制数据流中。前一种编码后就占了4*8=32位二进制位了,而我们实际想要得到的应该是4位二进制位不是么?请问应该怎样操作呢?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

无知飞鱼

银虫 (初入文坛)

有人解答一下么。。。。。。。。
2楼2015-04-21 11:28:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

无知飞鱼

银虫 (初入文坛)

有人解答一下么。。。。。。。。
3楼2015-04-21 14:14:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ll550

木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
首先一个byte可以表示0-255中任意一个数。输入一串byte到huffman encoder之后,输出得到一串编码后的byte。

不是所有的编码输入输出都是0和1组成的。RS code也是类似的。
livelong
4楼2015-04-21 14:43:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

无知飞鱼

银虫 (初入文坛)

引用回帖:
4楼: Originally posted by ll550 at 2015-04-21 14:43:44
首先一个byte可以表示0-255中任意一个数。输入一串byte到huffman encoder之后,输出得到一串编码后的byte。

不是所有的编码输入输出都是0和1组成的。RS code也是类似的。

那这个输入输出之间的编码操作是怎么实现的呢?比如我要对一连串32位的整形数据进行编码,输出的编码可能有一位、三位、五位的二进制位,怎么把这些二进制位编码结果组合成byte字节呢?
5楼2015-04-21 17:00:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ll550

木虫 (职业作家)

引用回帖:
5楼: Originally posted by 无知飞鱼 at 2015-04-21 17:00:24
那这个输入输出之间的编码操作是怎么实现的呢?比如我要对一连串32位的整形数据进行编码,输出的编码可能有一位、三位、五位的二进制位,怎么把这些二进制位编码结果组合成byte字节呢?...

比如一个byte 8bit 00000000 = 0,00000001 = 1,。。。。。。一次类推到255即可。输出的也是同样的byte。
livelong
6楼2015-04-21 17:24:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

无知飞鱼

银虫 (初入文坛)

引用回帖:
6楼: Originally posted by ll550 at 2015-04-21 17:24:51
比如一个byte 8bit 00000000 = 0,00000001 = 1,。。。。。。一次类推到255即可。输出的也是同样的byte。...

我是说怎么把不同长度的二进制位拼接成长的字节,比如:a,b,c对应的编码分别为:00,010,011,那么abc对应的编码就是00010011,这个结果应该怎么得到?同样我们解码时应该是对二进制位进行一位一位的判断,然后得到译码结果吧。这个应该可以通过位操作来实现,可是感觉会好麻烦。。。
7楼2015-04-21 20:03:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lcs199771

银虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
霍夫曼编码是无失真信源编码,编出的每一个码子是唯一可译的,在双方的码本里有一一对应,所以不要担心译码问题,接受的码子后,和接收端库里的码子对应查找就可以了,无所谓几进制!

[ 发自小木虫客户端 ]
业精于勤荒于嬉、行成于思而毁于随
8楼2015-04-21 22:06:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ll550

木虫 (职业作家)

【答案】应助回帖

引用回帖:
7楼: Originally posted by 无知飞鱼 at 2015-04-21 20:03:24
我是说怎么把不同长度的二进制位拼接成长的字节,比如:a,b,c对应的编码分别为:00,010,011,那么abc对应的编码就是00010011,这个结果应该怎么得到?同样我们解码时应该是对二进制位进行一位一位的判断,然后得到 ...

有个码本查询就得到了

[ 发自小木虫客户端 ]
livelong
9楼2015-04-21 22:11:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

无知飞鱼

银虫 (初入文坛)

引用回帖:
9楼: Originally posted by ll550 at 2015-04-21 22:11:45
有个码本查询就得到了
...

我是说怎么将那些不定长的二进制位拼接?查询只能得到单个字符的编码,怎么得到一连串字符串的编码?
10楼2015-04-22 08:22:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 无知飞鱼 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 291求调剂 +13 hhhhxn.. 2026-03-23 19/950 2026-03-28 04:12 by fmesaito
[考研] 085701环境工程,267求调剂 +12 minht 2026-03-26 12/600 2026-03-27 22:22 by 无际的草原
[考研] 286求调剂 +8 PolarBear11 2026-03-26 8/400 2026-03-27 18:05 by yu221
[考研] 272求调剂 +7 脚滑的守法公民 2026-03-27 7/350 2026-03-27 17:23 by laoshidan
[考研] 一志愿 西北大学 总分282 英语一62 求调剂 +7 18419759900 2026-03-25 8/400 2026-03-27 16:38 by 18419759900
[考研] 322求调剂 +4 旧吢 2026-03-24 4/200 2026-03-27 15:38 by 不吃魚的貓
[考博] 26申博 +3 加油冲啊! 2026-03-26 3/150 2026-03-27 15:38 by cls512
[考研] 317求调剂 +5 十闲wx 2026-03-24 5/250 2026-03-27 13:48 by 杨杨杨紫
[考研] 316求调剂 +5 Pigcasso 2026-03-24 5/250 2026-03-27 12:10 by zhshch
[考研] 一志愿武汉理工,总分321,英一数二,求老师收留。 +5 nnnnnnn5 2026-03-25 5/250 2026-03-27 04:42 by wxiongid
[考研] 343求调剂 +4 赠我一本书 2026-03-23 4/200 2026-03-27 00:40 by wxiongid
[考研] 一志愿华理,数一英一285求A区调剂 +8 AZMK 2026-03-25 10/500 2026-03-26 22:37 by 学员8dgXkO
[考研] 材料考研求调剂 +3 Dendel 2026-03-23 6/300 2026-03-26 17:51 by fmesaito
[考研] 271求调剂 +6 生如夏花… 2026-03-22 6/300 2026-03-26 16:48 by 张凯十八号
[考研] 309求调剂 +4 gajsj 2026-03-25 5/250 2026-03-26 00:27 by Dyhoer
[考研] 一志愿哈工大,085400,320,求调剂 +4 gdlf9999 2026-03-24 4/200 2026-03-25 23:01 by boxking200
[考研] 网络空间安全0839招调剂 +4 w320357296 2026-03-25 6/300 2026-03-25 17:59 by 255671
[考研] 284求调剂 +15 Zhao anqi 2026-03-22 15/750 2026-03-25 12:51 by wht0531
[考研] 生物学学硕求调剂 +7 小羊睡着了? 2026-03-23 10/500 2026-03-25 02:24 by 清风拂扬。 m
[考研] 384求调剂 +3 子系博 2026-03-22 6/300 2026-03-23 21:45 by 子系博
信息提示
请填处理意见