字符编码起源和发展

**基础ascii:**美国信息交换什么编码,也就一字节空间8位,最大255个,0到127(7F)是基础,80到FF是不常用的一些,这里没图片,自行百度下

在这里插入图片描述

**扩展ascii(gbk、gb2312):**为了解决中文,所以就有了这个,用两个ascii编码组成一个汉字,似乎很完美,但是缺只适用中国,国外也会使用相同原理组建自己的编码,所以就有了unicode

**unicode:**用4字节标识了世界上所有的标志,但是没有说明如何存储,这是个大问题,所以有了utf-8、utf-16,utf-32
**utf-16:**以连个字节为单位开始存储(计算机很多东西都是这个思想),也不知道为啥不显示中文,文件开头两个字节标识了文件编码,BFFF是大端存储的,FFFB是小端存储,
在这里插入图片描述utf-8: 稍微复杂,但是也好理解,有一个范围区间,
utf-16 utf-8
000000 - o0007F 0xxXXXXX
000080 - 0007FF 110xXXxx 10xXXxxX
000800 - 0OFFFF 1110xxxX 10xxxxxX 10xxXXXX
010000 - 10FFFF 11110x 10xxx 10xXXx 10xXxx
也就是说utf16字符这个范围内的对应utf-8这个范围,接下来上图
utf-16进制的“中”是4e2D,utf-8中的是e4b8ad
在这里插入图片描述在这里插入图片描述很显然4e2D是在000800 - 0OFFFF 1110xxxX 10xxxxxX 10xxXXXX中,把e4b8ad转化为2进制为:
111001001011100010101101
切分后得到
1110(0100)10(111000)10(101101)
括号中的才是有效位,其余的是填充位,学网络协议的都知道填充是啥哈
0100 1110 0010 1101= 4E2D
同理可得utf-32,有兴趣的多多练习即可掌握

下一篇:c语言宽字节

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值