相信不少同学都在初学计算机之时,都被ASCII,Unicode和UFT-8等字符编码格式 搞得焦头烂额,这玩意儿到底是啥,区别是啥,为啥有这么多?

反正我刚学的时候纯粹是囫囵吞枣,为了考试潦草背一背,背后的各种问题都没有考虑,直到最近,有人问我为什么有了Unicode还要有UTF-8,我一时语塞,羞赧之余才有了今天的这篇算是入门的文章。

首先我们看一下ASCII编码,我们先不解释ASCII,先从计算机的存储来看。

众所周知,所有的信息对计算机来说都只是0和1,就像对于人类来说,所有的信息最终都会转换成对于文字的描述,对于计算机而言,0和1就是他全部的语言,这就是所说的二进制。

每个二进制位有0和1两种状态。最近大热的量子计算机,也无非使用用两个量子态│0>和│1>代替经典比特状态0和1,它的基本信息单位就不是比特了,而是量子比特。

对于一个比特而言,有0和1两种状态,而1个字节由8个比特组成,也就是有256种状态,从00000000到11111111,每个状态对应一个符号,就能表示256个符号,我们知道,计算机起源于美国,所以对于英语为母语的美国人来说,256个字符绰绰有余。因此,能表示256个字符的ASCII码一开始仅仅使用了128个,即把一个字节第一位的比特都取为0。

但是,计算机的浪潮席卷全球,美国人用的那套就行不通了,一开始是欧洲的一些国家,128个字符压根不够,所以他们把第一位的比特也拿出来,但这也只能表示258个符号,更重要的是,每个国家都是用了258个符号的字符编码没事,但是代表的字母却不一样了,这就相当于两个地区的方言。

比如我的老家问你喝了吗?意思是喝没喝水或者粥一类的东西,但是隔壁市问你喝了吗就是问你吃饭没有的意思,让这两个碰上面,肯定会造成沟通上的失误,也就是我们所说的无法有效传递信息。

因此,为了解决这个问题。Unicode出现了,它把所有的符号都纳入其中。

但是需要注意的是,Unicode只是一个符号集,还是要依赖于具体实现,也就是应该如何存储,原因是如果规定字符都使用一两个字节,那汉字就不能表示,但是都是用三四个字节,英文字母就会浪费很多内存空间,因此这就依赖于UTF家族成员,UTF家族有UTF-8,UFT-16以及UTF-32这几个成员。

UTF-8有一个很大的好处,就是它可以根据不同的符号来变化长度,这样就可以避免英文字母造成内存浪费的问题。

当然,UTF-8的编码规则也很简单:

1)对于单字节的符号,字节的第一位都为0,后面7位为这个符号的Unicode,这一点和ASCII编码是一样的。

2)对于n字节的符号,第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的Unicode码。这也就意味着,如果第一位为1,那么有多少位1,就表示当前字符占用了多少个字节。

Little endian和Big endian:

Little endian:小字节序,也叫低字节序。意思是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。

Big endian:大字节序,也叫高字节序。意思是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。

那么问题来了,何为字节序呢?

通俗来说,字节序就是指数据在内存中的存放顺序。

例如”子“,它的Unicode编码是 5b50 ,需要用到两个字节存储,一个字节是5b,一个是50。存储的时候,5b在前,50在后,就是Big endian方式,倒过来就是Little endian方式。

今天的分享就到这里了,如果大家有什么问题,可以发在留言区。

感谢大家的观看。

lpv4的地址格式由多少个字节组成_我们为什么有这么多字符编码格式?相关推荐

  1. lpv4的地址格式由多少个字节组成_中国大学MOOC: IPV4的地址格式由多少个字节组成?( )...

    中国大学MOOC: IPV4的地址格式由多少个字节组成?( ) 答:4个字节 在角度测量过程中,造成测角误差的因素有 答:照准误差 目标偏心误差 仪器误差 读数误差 思维定势的表现形式包括(). 答: ...

  2. lpv4的地址格式由多少个字节组成_计算机网络技术(复习题及答案)

    <计算机网络技术>课程习题集 一.单选题 1.以下哪个选项是正确的Ethernet MAC地址?[ B ] A.00-01-AA-08 B.00-01-AA-08-0D-80 C.1203 ...

  3. lpv4的地址格式由多少个字节组成_2020年智慧树艺术品拍卖第八单元章节测试答案...

    年智Socrates said that when the inspiration came, the poets will sink into ____. 参考答案如下 慧树5 It was ver ...

  4. lpv4的地址格式由多少个字节组成_IPV4的地址格式由多少个字节组成?()。

    摘要: 地多少平仄舟楫格律渡无"的"欲是(.式由密钥公开加密加密对称利用是指.个字报文密技相结共密技术签名产物钥加函数合的分解数字是公术和.... 地多少平仄舟楫格律渡无" ...

  5. mysql宽字节注入_转宽字节注入详解

    在mysql中,用于转义的函数有addslashes,mysql_real_escape_string,mysql_escape_string等, 还有一种情况是magic_quote_gpc,不过高 ...

  6. java一个byte字节可以存2个16进制字符

    一个字节是8位(bit),xxxxxxxx ,范围从00000000 - 11111111,表示0到255. 一个16进制字符(用二进制表示是xxxx)最多只表示到10进制的15(即16进制的F) 要 ...

  7. python16进制字节序_第 1 章 套接字、IPv4和简单的客户端/服务器编程

    第 1 章 套接字.IPv4和简单的客户端/服务器编程 本章攻略: 打印设备名和IPv4地址 获取远程设备的IP地址 将IPv4地址转换成不同的格式 通过指定的端口和协议找到服务名 主机字节序和网络字 ...

  8. 语言axff所占字节数_【每日一答】(74)数组名v.s.指针变量,C语言其实很简单形象比喻为“是一个朋友圈的”...

    下图选自<C语言其实很简单>第8章: 问:请问张老师!书上第227页一句话:指针变量a本身的地址(a所在内存字节编号)是数组的地址,数值上与元素a[0]的地址相等! 这句话是什么意思,我看 ...

  9. mysql字节对齐_结构体字节对齐-位域及其对齐

    字节对齐的准则:其实字节对齐的细节和具体编译器实现相关,但一般而言,满足三个准则: 1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除: 2) 结构体每个成员相对于结构体首地址的偏移量都是成 ...

最新文章

  1. php mysql cms 商城,国内最常用的PHP+MySql免费CMS系统大全
  2. CoreLocation.ConnectionClient CFDictionaryApplyFunction Crash
  3. Sprint 站立会议(个人)
  4. 3 Curator框架实现分布式锁
  5. XUtils之注解机制详解
  6. JDK源码(16)-ClassLoader
  7. Python数据分析学习笔记03:NumPy基础(数组与向量化计算)
  8. Leetcode每日一题:941.valid-mountain-array(有效的山脉数组)
  9. [转]编程之美数组分割问题
  10. Study Struts Commons Validator
  11. GCAlloc 问题一则
  12. Redhat开机丢失引导
  13. Docker学习之docker重启参数--restart=always的作用
  14. Docker部署mysql主从模式
  15. html source type mp4,html5 – 获取MediaSource.isTypeSupported的mime类型
  16. 目标检测——数据获取和标注(一)
  17. 疯言疯语 -- 物联网与智能汽车与智慧城市
  18. 怎样才能成为一个优秀的产品经理
  19. Linux 防火墙与NAT服务
  20. 房地产行业erp系统

热门文章

  1. zoj 3488 conic section
  2. 大学电路题目怎么搜_长沙理工大学2020真题浅析
  3. jvm 安装位置_简单了解JVM
  4. 00600 ora 关闭oracle_Oracle集群高可用故障切换
  5. 的ui在vs中显示没有成员_在电脑桌面使用敬业签团队便签怎么设置新增内容在上面显示?...
  6. 河北微型计算机原理专接本,河北省专接本(微机原理与接口技术知识点总结)
  7. 微型计算机的系统组成图,微型计算机系统结构图.doc
  8. android录屏软件冲突,关于Android同时录制多个录像的问题
  9. 相关系数矩阵计算_corrplot包:相关性矩阵可视化
  10. C++11新特性探索:原始字符串字面值(raw string literal)