加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux编码 面试官问你编码相关的面试题,把这篇甩给他就完事

发布时间:2022-09-24 15:07:26 所属栏目:Linux 来源:
导读:  前情回顾:

  今天主要聊一聊:

  字节

  例如 :00001111 这个8位二进制数就占了一个字节的存储容量。

  字节(英语:Byte),通常用作计算机信息计量单位,不分数据类型。 一个字节代
  前情回顾:
 
  今天主要聊一聊:
 
  字节
 
  例如 :00001111 这个8位二进制数就占了一个字节的存储容量。
 
  字节(英语:Byte),通常用作计算机信息计量单位,不分数据类型。 一个字节代表八个比特(英语:Bit)。这个是最基本的概念了,字节是计算存储容量的一种计量单位,计算机只能识别1和0组成的二进制位。一个数就是1位(bit)linux编码,为了方便计算,我们规定8位就是一个字节。
 
  例如 :00001111 这个8位二进制数就占了一个字节的存储容量。
 
  字符
 
  字符和字节不太一样,任何一个文字或符号都是一个字符,但所占字节不一定,不同的编码导致一个字符所占的内存不同。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。 也就是说,一个数字是一个字符,一个文字是一个字符,一个标点符号也是一个字符。
 
  1 是 字符,“汉” 是字符,“!”感叹号是字符。
 
  字符集
 
  charset 是 character set 的简写,即字符集。字符的集合就叫字符集。ASCII字符集就是下表中的字符那一列的所有字符的集合。
 
  编码
 
  编码是一个非常宽泛的概念!虽然我们一直用编码特指字符集编码,但这只是一种狭义的理解,广义的理解则有很多:
 
  著名的摩尔斯电码其实也是一种编码:
 
  在图片中,M的编码就是“━ ━”,其它类似。
 
  字符编码 是 编码的一种情况,不过我们学计算机的说到编码就是字符编码。
 
  字符编码
 
  encoding 是 charset encoding 的简写,即字符集编码,简称编码。定义字符集中的字符如何编码为特定的二进制数,以便在计算机中存储(就是将字符在字符集中的对应位置化为二进制)。
 
  字符集和字符编码一般一 一对应,Unicode字符集例外,因为Unicode字符集有三种编码方式(utf-8,utf-16,utf-32)
 
  字符编码 和 字符集的区别
 
  与接口及接口实现的对比
 
  可以把这两者与接口及接口实现做个对比:
 
  从这里可以很清楚地看到,
 
  编码是依赖于字符集的,就像代码中的接口实现依赖于接口一样;一个字符集可以有多个编码实现,就像一个接口可以有多个实现类一样。Java中 内码和外码
 
  简单来说
 
  java内码:unicode(utf-16)
 
  jvm默认外码:
 
  为什么Unicode这么特殊?
 
  人们弄出新的字符集标准,驱动力无外乎是旧的字符集里的字符不够用了。
 
  Unicode 的目标是统一所有的字符集,囊括所有的字符,粗略估算为 17×6万=102 万,所以字符集发展到它这里就到头了,再去整什么新的字符集就没必要也不应该了,102万目前已经完全够用了。
 
  但如果觉得它现有的编码方案不太好呢?在不能弄出新的字符集情况下,只能在编码方面做文章了,于是就有了多个实现,这样一来传统的一一对应关系就打破了。
 
  比如说UTF-32编码,哪怕是00000000 00000000 00000000 00001111这种其实只占了1个字节的字符,我们也要为他分配4个字节的空间,这就导致一个可以用1G保存的文件,现在需要4G才能保存,这是极其浪费的做法。
 
  于是某位大牛觉得UTF-32编码太浪费空间了吧,于是大牛就做出了UTF-8、UTF-16编码方案(这里就是举个例子,可能大牛就是搞出来玩,具体原因无从考究)
 

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!