python攻克之路day2
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python攻克之路day2相关的知识,希望对你有一定的参考价值。
day2内容
- 二进制以及编码
1.二进制以及编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。
编码和二进制(基础知识)
计算机存储,网络传输,内存计算用的都是 01010101010101010101
ascii码,8位表示一个字符。
由于最早开始并没有考虑到计算机将会全球化,美国发明计算机之初对ASCII编码只有到7位已满足美国单一国家使用后面扩展到8位,
是发明者保留了。
随着计算机在全球范围的广泛使用、显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
Unicode弊端:
局限性只有2**16位 = 65535
不能满足存放更多的文字。
Unicode于是32位出来了。
32位 4个字节
其弊端:
00000000 00000000 00000000 00001001 -----> 假设代表A
00000000 00000000 00000000 00011001 -----> 假设代表B
00000000 00000000 00000000 00101000 -----> 假设代表C
原来 ABC各一个字节都能存放的,其余多出的空间浪费掉了
针对这种情况,又出了一种叫做UTF-8的字符集
对Uniocode进行优化的编码:用最少的位数表示所有的文字
下面是上描述的图: 用最少的位数表示所有的文字 在UTF-8 A的编码占的字节 ------->00001001 utf-8(一个汉字,占3个字节)
UTF-8好处在于能够把所有的字符都包含,对于一些不需要很多位字节的进行压缩。
GBK编码,不考虑别的国家的编码集,它跟UTF-8一样,用最少的位数表示所有的文字,缺点:不考虑其他国家的文字,只能解析中文 ,汉字(占2个字节)
以上是关于python攻克之路day2的主要内容,如果未能解决你的问题,请参考以下文章