人海茫茫
相识真好

决战Python之巅(八)

前言

今天是第一模块的最后一篇,晚上把作业交了之后还得考核,考核完成之后就可以开始第二模块啦~~
好了,废话不多说。今天写的是关于16进制和字符编码的记录。

知识回顾

16进制

之前我们讲过二进制和十进制的转换,应该还记得吧。这里稍微复习一下:二进制与十进制的羁绊
除了二进制与十进制以外,还有八进制和十六进制。大家可能会想,二进制是计算机最底层的语言,计算机只能识别这种010101,也就是说是给计算机看的语言,而十进制是我们能看懂的语言,那么八进制和十六进制是干嘛用的呢?
在一些很古老的计算机语言中,八进制还在使用,而我们一般用不到,基本了解足以。
十六进制就比较重要了。计算机硬件是二进制的,而十六进制刚好是2的倍数,可以更容易表达一个命令或者数据。因为它更简短,计算起来就比二进制方便很多(这个计算指的是我们人去计算)。譬如,一个字节有8个二进制数,而把这个字节换算成十六进制,它就可以用两个十六进制表示(1位十六进制顶4位二进制),不管是阅读还是存储都很方便。
计算机中CPU计算也是遵循ASCII字符集,是以16、32、64这样的方式发展的,所以在数据交换时候十六进制也显得更好。
为了统一规范,CPU、内存、硬盘上我们看到的都是采用的是十六进制。(注意说的是我们看到的)。
那十六进制用在哪里呢?
决战Python之巅(八)
所以呢,除了需要学会二进制与十进制之间的相互转换,还需要学会十六进制与它们俩的相互转换。

字符编码

之前我们介绍过字符编码的发展史,今天我们就细细的讲一下字符编码。
先贴一篇Alex大佬写的博客,可以先去看这边博客,讲的很细,我只是总结一下。
字符编码详解

——————————————————————我是分割线———————————————————————————–
看完的同学…再给你们一点时间理一下,或者重新看一遍,我刚刚也去看了一遍…


好了,我们知道了如果要用日本的软件而且不显示乱码,就需要 先将其解码(decode)成unicode,再编码(encode)成gbk,才能在我们中国的计算机上正常显示。
在Python 2中,它的默认编码是ASCII码,默认的文件编码也是ASCII码。如果你想正常显示中文,就需要在文件头声明使用gbk编码。
在Python 3中,虽然文件编码默认是utf-8,但是读到内存后会被Python解释器自动转成unicode(这也是为什么极力推荐使用python 3)。
还有一个新的数据类型,bytes,它实际上是一串十六进制数据。在python 2中,string直接就等于bytes;在Python 3中,bytes与str有了明确的区分。
在Python 2中,unicode是一个单独的类型,用u’#你的内容 ‘来表示;在Python 3中,字符串都是unicode,所有的unicode字符编码后都会变成bytes格式。
切记切记!!!!

赞(0) 打赏
未经允许不得转载:老康的学习空间 » 决战Python之巅(八)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏