Python 基础 编码

咱们的电脑,存储和发送文件,发送的是什么?电脑里面是不是有成千上万个二极管,亮的代表是1,不亮的代表是0,这样实际上电脑的存储和发送是不是都是010101啊

我们发送的内容都是010101010这样写的内容比较多就不知道是什么了,所以我们想要明确的区分出来发送的内容就需要

在某个地方进行分段.计算机中设定的就是8位一断句

1.1 ASCII

计算机:

    储存文件,或者是传输文件,实际上是010101010

    计算机创建初期,美国,是7位一段,但是发明者说为了拓展,留出一位,这样就是8位一段句。8位有多少种可能 ?256

    密码本:

    ascii

         00000001

         01000001 01000010 01000011   ABC

随着计算机的发展. 以及普及率的提高. 流⾏到欧洲和亚洲. 这时ASCII码就不合适了. 比如: 中⽂汉字有几万个. 而ASCII 多也就256个位置. 所以ASCII不行了. 怎么办呢? 这时, 不同的国家就提出了不同的编码用来适用于各自的语言环境. 比如, 中国的GBK, GB2312, BIG5, ISO-8859-1等等. 这时各个国家都可以使用计算机了.

1.2 GBK

GBK, 国标码占用2个字节. 对应ASCII码 GBK直接兼容. 因为计算机底层是用英文写的. 你不支持英文肯定不行. 而英文已经使用了ASCII码. 所以GBK要兼容ASCII. 这里GBK国标码. 前⾯的ASCII码部分. 由于使⽤两个字节. 所以对于ASCII码⽽言. 前9位都是0

字母A:0100 0001 # ASCII
字母A:0000 0000 0100 0001 # 国标码

随着全球化的普及,发展到欧洲,亚洲等国家,发现这些根本不够用,所以创建了万国码。 因为全球语言很多,ascii不足以存储这么多对应关系,创建了一个超级密码本:万国码unicode

8 位 == 1个字节.
hello h一个字符,e一个字符,he就不是一个字符.
中国:中是一个字符,国是一个字符.

1.3 Unicode

创建之初,16位,2个字节,表示一个字符. 英文: a b c 六个字节 一个英文2个字节 中文 中国 四个字节 一个中文用2个字节

但是这种也不行,这种最多有65535种可能,可是中国文字有9万多,所以改成 32位,4个字节,表示一个字符.

a 01000001 01000010 01000011 00000001 b 01000001 01000010 01100011 00000001 中 01001001 01000010 01100011 00000001 浪费资源.

1.4 UTF-8

对Unicode进行升级: utf-8 utf-8 用最少用8位数,去表示一个字符. 英文: 8位,1个字节表示. 欧洲文字: 16位,两个字节表示一个字符. 中文,亚洲文字: 24位,三个字节表示.

utf-16 用最少用16位数。

gbk: 国标,只能中国人自己用, 一个中文用16位,两个字节表示。

1.5 单位转化

1byte = 8bit
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
1024PB = 1EB
1024EB = 1ZB
1024ZB = 1YB
1024YB = 1NB
1024NB = 1DB
常⽤到TB就够了

最新文章

  1. EC笔记,第二部分:5.了解C++默默编写并调用哪些函数
  2. ZeroMQ接口函数之 :zmq_ctx_get - 得到环境上下文的属性
  3. mysql-python
  4. Codeforces Round #384 (Div. 2)B. Chloe and the sequence 数学
  5. 【Struts2学习笔记-8】Struts2实现json数据的返回
  6. 美国H1B基本情况及相关数据
  7. NSString、NSData、char* 类型之间的转换-备
  8. TObject简要说明-对象的创建流程
  9. win10下安装Django
  10. which framework or library is best to use WebRTC
  11. Jvm原理剖析与调优之内存结构
  12. Ubuntu 安装 Mysql 5.6 数据库
  13. Spark RPC框架源码分析(二)RPC运行时序
  14. 使用VMWare虚拟机打开MFC报错:不支持16位系统
  15. 工具函数判断data为整型字符串
  16. openstack删除僵尸卷
  17. SonarQube代码质量管理工具的安装(Linux)
  18. java list按照元素对象的指定多个字段属性进行排序
  19. Ubuntu 设置UFW防火墙
  20. HDU高精度总结(java大数类)

热门文章

  1. Bzoj 1857: [Scoi2010]传送带(三分套三分)
  2. CSS注册页面案例
  3. 分析WordPress数据表之文章表(功能篇)
  4. npm安装插件怎么判断是--save 还是--save--dev
  5. 数据结构(一)二叉树 & avl树 & 红黑树 & B-树 & B+树 & B*树 & R树
  6. window系统对应默认IE浏览器版本
  7. python 五星红旗
  8. gradle/gradle plugin/Android studio关系
  9. 字节顺序&字节对齐
  10. 在 Windows 中配置Maven