python初学者程序员@IT·互联网

跟我读python3文档:001_编程的本质是什么!(上)

2017-08-16  本文已影响1730人  咖喱py

贯穿始终的理念:别废话,就是干!


编程的本质(上)

编程就是控制计算机做我们想让它做的事情。如何控制?一句话概括:通过通断电控制。

举一个最最简单的编程例子:开关灯泡!

你没有看错!就是开关灯泡!我们通过一个开关,改变了灯泡的状态!给电,亮!断电,不亮!我们通过通断电的方式,操作灯泡电路,让灯泡做了我们想让它做的事情。

但实际的计算机是远比灯泡电路复杂的多的通断电电路。你可以想象一下,控制自己卧室的灯泡亮灭,和控制整栋楼的灯泡亮灭,甚至控制整个国家,整个世界的灯泡亮灭,难易程度是完全不同的。
当然,随着灯泡越多,我们能表达的信息也就越多。
这里给大家举一个小例子:https://www.bilibili.com/video/av13418869/

我们继续说回灯泡:

左灯 右灯

想想看,这是不是意味着我们只用两个开关就可以表达出四种信息?

我们会发现,灯泡的数量与其能表现出的状态是2的N次方关系。
这种N次方的数量关系,是不是意味着:随着灯泡的增多,我们只要用相对较少的开关,就可以控制一定数量的灯泡的亮灭,表达出足够多的信息!
这就是计算机的一个基本原理之一。

而在计算机中,这种一个灯泡表示亮灭的最小信息单位就叫做bit,中文翻译为:
而亮灭的状态也用数字10来表示。1表示亮、表示通电等意思;0表示不亮、表示断电等意思。
这种用01两种不同状态表达信息的方式,就是我们常常谈到的二进制!

但是光有二进制还是不够,一个bit能表示的信息太少了,所以,人们规定,我们把八个bit打包成一组,并且命名位:byte,中文翻译为:字节

那么,一个字节可以表现出多少种状态呢?2的8次方,也就是256种状态。
但是我们还面临一个问题,这些状态都表示什么?

你可以想象一下,你在自己窗台上摆了8个灯泡,街对面的小伙伴也在窗台上摆了8个灯泡,你点亮了其中两个灯泡:01001000,然后又重新点亮了4个灯泡:01101001。你的小伙伴怎样才能理解你的意思,并且回复你呢?

除非你们规定好了不同亮灭组合表示的意思。于是ASCII规则应运而生,大概发音:啊思key。
具体对照规则可以参考以下链接:
ASCII: https://zh.wikipedia.org/wiki/ASCII
这就是我们常说的字符编码规则。

规则不止这一套,还有:GBK、UTF-8等。
目前通用的是UTF-8,因为它通过小灯泡的组合,可以表示几乎所有国家的文字,并且兼容ASCII。

等等!不是说8个小灯泡只能表示256个字符吗?光中文也不止256个啊,怎么表示全世界的文字呢?
原因很简单,8个不够,再来8个不就够了,没错,UTF-8用了16个小灯泡表示字符。。。

对照表格看看,上面两组小灯泡组合0100100001101001表示什么意思~

鉴于大家刚刚开始接触编程,所以这一小节就写到这里吧。今天只要理解bitbyte的概念就行了。

我们将在下一小节通俗的讲解编程时,我们到底是在干什么?


《跟我读python3文档:002_编程的本质是什么!(下)》

相关文章,请点击文集《跟我读python文档》

上一篇下一篇

猜你喜欢

热点阅读