当前位置:首页 » 《随便一记》 » 正文

后端知识点:哈夫曼编码_菜菜bu菜的博客

9 人参与  2022年05月17日 12:17  分类 : 《随便一记》  评论

点击全文阅读


在这里插入图片描述

后端知识点:哈夫曼编码

  • 前置条件
    • 什么是字符?
    • 常见编码方式
  • 什么是哈夫曼编码
  • 哈夫曼编码的应用
  • 致谢

前置条件

什么是字符?

字符就是计算机中数据的表现形式。象数字,汉字,字母都是字符。在计算机中,对非数值的文字和其他符号进行处理时,要对文字和符号进行数字化,即用二进制编码来表示文字和符号。其中西文字符最常用到的编码方案有ASCII编码和EBCDIC编码。对于汉字,我国也制定的相应的编码方案-国家标准汉字编码(GB2312-80)。

常见编码方式

  • ASCII编码

ASCII码由7位二进制数组成,能够表示128个字符数据。

  • ANSI编码和其他扩展的ASCII码

ANSI(美国国家标准协会)编码是一种扩展的ASCII码,使用8个比特来表示每个符号。

  • EBCDIC编码

在IBM System/360计算机中,IBM研制了自己的8位字符编码——EBCDIC码(Extended Binary Coded Decimal Interchange Code,扩展的二-十进制交换码)。该编码是对早期的BCDIC 6位编码的扩展,其中一个字符的EBCDIC码占用一个字节,用8位二进制码表示信息,一共可以表示出256 种字符。

  • Unicode编码

ASCII码是7位编码,Unicode采用16位编码,每一个字符需要2个字节。这意味着Unicode的字符编码范围从0000h~FFFFh,可以表示65536个不同字符。

  • 国家标准汉字编码(GB2312-80)

国家标准汉字编码简称国标码。该编码集的全称是“信息交换用汉字编码字符—基本集”,国家标准号是“GB2312-80”。该编码的主要用途是作为汉字信息交换码使用。

  • 其他汉字编码

Big5汉字编码

什么是哈夫曼编码

“哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。”

这个哈夫曼编码实现的原理跟一种特殊的数据结构 “哈夫曼树”有观,也被称为最优二叉树。想了解同学可以看下B+树真的不难,楼下菜大爷都能学得会的B+树!,里面有各种树的解释,看了之后再去看最优二叉树就比较好理解了。

哈夫曼编码的算法是查找最优路径的一种算法,首先在所有未分配parent域的节点中找出最小的两个节点,将他们的全值相加,组成新的节点,并且将它标记为原来两个最小节点的parent。这样调用递归,最后就能够成一颗完整的哈夫曼树。然后对 每个节点进行遍历编码,得到最终的哈夫曼编码库

哈夫曼编码的应用

哈夫曼编码,主要用途是实现数据压缩。

致谢

哈夫曼编码
计算机中字符的表示
哈夫曼编码原理详解及应用实例,哈夫曼编码算法流程图 - 全文


点击全文阅读


本文链接:http://zhangshiyu.com/post/40296.html

编码  汉字  字符  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1