打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
一文了解计算机中的编码

  我们日常书写的文字是语言的编码;五线谱是音乐演奏的编码。那么计算机世界的编码又是如何构成的?

构成一切的0和1

  二进制是只有0和1两个数字组成的计数系统。0和1两个状态与电路的开关状态非常相似,所以计算机中所有的数据都是由一串串二进制数字表达。最小的数据表达单位是位(bit,音译:比特),常用小写字母b表示。8个位是1字节(byte),常用大写字母B表示。网络传输的基础单位使用b,计算机存储的基础单位使用B,在使用过程中应特别注意两者有8倍的数量差异。

“最简单”的编码:ASCII

  ASCII编码采用7位二进制数表示128个字符。字符中包含了大小写英文字母、数字0-9及常用的符号。在所有的字符编码标准中,ASCII是最小且最常用的编码。在计算机编程的过程中,编程语言都会原生支持ASCII编码的数据类型。由于ASCII编码的普及性,后续的字符编码多兼容ASCII编码,前7位二进制内容与ASCII码完全一致。我国的标准编码是GB18030 2022版本,并于2023年8月1日开始正式实施。国际化常用的编码为UTF-8(Unicode Transformation Format-8),可以表示Unicode字符集中的所有字符。

ASCII可见字符编码示意图

倒过来行不行?

  随着互联网的兴起,电子邮件系统需要一种可以传送二进制文件的编码方式。由于邮件协议采用文本协议传输信息,所以就需要一种可以表示二进制数据的文本编码。如果直接使用ASCII编码中的0和1,数据量将增大到7倍。如果采用十六进制字符表示,数据量也将增大到2倍。Base64编码使用64个ASCII字符形成一个“64进制”的编码,这样3个字节的数据可以用4个Base64的字符进行表示。URL地址编码也采用表Base64编码,字符由两部分组成。以%作为开头,字符对应的数字用两位十六进制表示。

Base64编码示例

编码如何优化“体积” 

  通过字符重新对内存数据进行编码会导致数据量膨胀,那有没有一种技术可以缩小编码的体积?哈夫曼编码就是这样一种方法,通过优化码的定义顺序降低整体的数据量。编码分为固定长度、变化长度两种,固定长度编码所有码的长度固定,无法优化编码体积,变化长度编码把使用量大的码定义为短码,而使用量小的码定义为长码,码与码之间使用特殊符号分割。前面提到的UTF8编码就是一种变长的Unicode编码。哈夫曼编码只是一种优化方式,数据进行重新编码的方式还有很多,例如:倒排索引的位置压缩。

  编码是智慧的结晶,蕴含着创造者对特定数据集合的深刻理解。通过学习编码的原理我们可以更深入了解数据之间的关系,掌握如何组织数据的技巧。

点击“在看”和“赞”
让更多人了解数字化技术。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
字符编码
带你了解字符编码的前世今生
开发技术--浅谈文件操作与字符编码
netty源码:先从字节和字符开始
从编码的纵横历史理解计算机编码,以史鉴理
C语言入门教程:ASCII编码与Unicode编码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服