指南:本文的首席执行官注释将介绍用于Python的数量存储字符的相关内容。我希望这对每个人都会有所帮助。让我们来看看。
Unicode的编码范围为0?0x10ffff。在如此庞大的范围内,很明显,没有办法使用诸如ASCII编码之类的字节存储。为此,Unicode制定了各种存储代码,例如:UTF-8,UTF-16和UTF-32。这些存储格式称为Unicode转换格式UTF。
每种Unicode转换格式将将一个编码存储到一个到多个编码单元中,例如8位数字的UTF-8编码单元;UTF-16的编码单元为16位数字,即2个字节;UTF- 32的编码单元为32位,即4个字节。
其中,UTF-8是Internet上使用最广泛的Unicode转换格式,该格式具有以下重要优势。BELOW,让我们看一下UTF-8有点?
1. UTF-8中的每个ASCII字符只需要一个字节存储,因此ASCII文本本身也是UTF-8文本,它与向后兼容兼容。
例如,A的ASCII代码对应于0x41,并且A的ASCII代码对应于0x61,然后UTF-8兼容ASCII也意味着:
在这里,您需要再次提醒您:Unicode是一种表达式,UTF-8是存储表格;也就是说,UTF-8解码是Unicode,并且可以将UNICODE编码为UTF-8。
2. UTF-8使用字节作为存储单元,因此没有大端和小段落字节。
UTF-16和UTF-32的存储单元是2个字节和4个字节,因此它们在存储时涉及大小端的问题。因此,最终模式的大小是多少?让我们停止添加它?
关于如何了解您的环境是在大端还是小端模式下使用的,这里有一种简单的方法:定义一个简短的类型数组:
数字1在短类型中以0x0001表示,低级别为0x00,而0x01表示。我们可以非常直观地看到,当保存数组时,将高0x00放置在高地址,而低0x01则将其放在低地址。因此使用了小的终端模式。
那么,为什么UTF-8可以将字节用作存储单元而不是担心字节顺序?这涉及UTF-8?的巧妙编码规则
UTF-8的最大功能之一是它是一种长期编码方法。它可以使用1到4个字节代表一个符号,该符号根据不同的符号更改字节长度的长度。UTF-8非常简单,只有两个:
1)对于单个字节符号,第一个字节设置为0,后者7是此符号的Unicode代码。也就是说,我们上面提到的向后兼容性:对于英语字母,UTF -8编码为与ASCII代码相同。
2)对于x -byte存储的符号,第一个字节的第一个x位设置为1,x+1位设置为0,然后将后续字节的前两个位设置为10. fill一次在此符号的Unicode代码中。
下表总结了编码规则。字母X表示可用于编码的位:
根据上表,对UTF-8编码的解释也很简单:如果字节的第一个数字为0,则该字节是单个字符;如果第一个数字是1,则连续有多少个连续数字,这意味着它是指许多字节被当前字符占据。
下面,让我们演示UTF-8编码的过程。
首先,获取汉字的Unicode代码:
我们不妨使用UTF-8编码来查看使用多少个字节来使用鱼类的汉字:
鱼使用3个字节存储在UTF-8编码中。因此,存储的二进制形式为1110xxxxxxxx 10xxxxxxx,并且Unicode 1001 110001 111100在占位符X的位置填充。
在下面,我们将将上述11101001 10110001 10111100转换为十六进制。
验证是正确的!
Python数字加char的结果可以为2个字节,4个字节,8个字节,并且字符类型仅占据1个字节。整数和字符类型是可互操作的。它们存储在内存中的内存中,但仅存储在不同的存储范围中。
《计算机系统的深度理解》一书提到了32台机器和64台机器中的4个字节,而短则不再超过int,它不超过长时间。位置和短类型的长度不能超过INT类型,并且INT类型不能超过长类型。这意味着每种类型的可变长度由编译器确定,并且当前主流编译器通常为4个字节(例如,GCC)32-bit中机器和64位机器。
相关建议:“ Python教程”
这是海湾合作委员会编译器下的32台机器和64台机器占用的字节数:
应该解释的是,指针类型存储了变量的地址,因此32位计算机只需要32位,而64位计算机需要64位。
Python2.7和Python3.6通常使用的差异
*** Python2.7仅支持到2020年1月1日。建议新学习者安装Python3版本。
项输入差异
Python2.7:
(1)input()可以自动确定其类型,即,哪种类型的数据输入,哪种类型,没有引号的英语字符是变量,并将在完整文本中找到相应的变量。如果是STR类型必须用单引号或双引号添加,否则类型是错误的,请报告错误。
(2)RAW_INPUT()输入所有数据均根据STR类型处理。如果是塑料输入,则将str传递到int,并且(int)是强制性的。
Python3.6:
(1)输入()输入所有数据均根据STR类型处理。如果是塑料输入,则将STR转移到INT,并且(INT)是强制性的。
(2)不再使用raw_input()。
相关建议:“ Python视频教程”
打印差异
Python2.7:打印是类,直接打印值。
Python3.6:print()是一个函数,并且必须包含打印值。
区别
Python2.7:默认的ASCII处理字符(字符串以8位存储),因此请使用中文字符添加# - * - 代码:UTF-8 - * - 。
Python3.6:所有Unicode(WAN GUO代码,统一代码固定2个字节,带有16位的字符串存储)字符集,UTF-8(动态更改1-6字节,EN:1 BYTE ZH:3 BYTES)Unicode的压缩和优化,因此支持中文。
真正分裂和分裂差异
python2.7:带一个小数点/指示实际去除的点数,%表示剩余的,//表示地板去除(结果是整齐的)。
python3.6:表示实际去除,%表示剩余,//表示地板去除(结果是整洁)。
范围,Xrange差异
python2.7:range()生成列表,xrange()生成一个生成器。
python3.6:列表(range(0,4))列表,range(range()生成生成器,xrange()不再使用。
打开文件差
python2.7:file(),open()可以打开文件。
python3.6:不再使用file(),只使用Open()打开()打开文件。
结论:以上是首席CTO的全部内容注明了Python使用了多少个存储字符的字节。我希望这对每个人都会有所帮助。如果您仍然想了解有关此信息的更多信息,请记住收集并关注此网站。