Python最强入门教程-3.1节: 彻底掌握计算机的信息表示

目录

3.1.1 理解信息表示

3.1.2 理解进制表示法

3.1.3 计算机中的信息存储

3.1.4 本节内容知识脑图

3.1.5 本节知识要点

3.1.6 课后习题


这是一本教同学们彻底学通Python的高质量学习教程,认真地学习每一章节的内容,每天只需学好一节,帮助你成为一名卓越的Python程序员:

本教程通俗易懂,面向的是零编程基础的同学,非科班人士,以及有一定编程水平的中高级程序员。

3.1.1 理解信息表示

所谓的信息表示,是指通过某种事物或逻辑概念来表达信息的含义。文字是一种重要的信息表示法,藉由文字,人类文明的灿烂文化才得以传承下来。

人类文明自发明文字起开始计算,尚不足六千年,在这几千年的人类历史中,人类通过文字传播等方式,创造出了灿烂的人类文明。

人类作为文字的发明者和使用者,通过文字来表示和传达信息,是一种非常自然的方式。但在计算机中,却不能通过文字来表示信息,因为机器无法理解文字。

计算机由逻辑电路组成,逻辑电路通常只有两种物理状态:“打开”的状态和“关闭”的状态。这两种状态正好可以用数字1和0来进行表示,使用1表示打开的状态,0表示关闭的状态。

这种使用数字1和0来表示信息的方法,称为二进制表示法。
图片1.png
那么,为什么这种二进制表示法可以表示信息?

举个简单的例子,我们使用文字来描述一段信息,内容如下:

我爱你

因为计算机只能识别二进制,那么为了让计算机能“理解”这段文字,
我们可以使用以下二进制来对文字进行代替:

文字 二进制
00
01
11

那么“我爱你”在计算机中的二进制表示为:
00 01 11

3.1.2 理解进制表示法

(1) 进制的概念
进制是一种带进位的计数方法。生活中最常见的计数方法是十进制表示法,在十进制这种计数方法中,基数为10,有10个基本的数字符号:
09.png

在进制计数法中,N进制即表示该类计数法中的基数为N,有N个基本的数字符号。由于阿拉伯数字简洁实用,在大部分情况下都是使用阿拉伯数字来作为基本的数字符号。

所谓的“带进位”,是指数值超出进制中的最大数字符号时,向高位进一。

例如十进制中的最大数字符号是9,那向高位进位后的数字变为10。

其进位过程可以分解为以下三个步骤:

(1) 数字超出最大数字符号9,向高位进位,数字由1位数变成2位数
(2) 由于是向高位进一,所以高位为1,低位已经进位,继续从0开始计数
(3) 由(1)和(2)可得进位后的数字为10

其它进制的计数法与十进制计数法都是一样的原理,以三进制进行举例,在三进制的计数法中,基数为3,有3个基本的数字符号:
012.png

三进制中的最大数字符号是2,那么向前进位后的数字变为10。

其进位过程可以分解为以下三个步骤:

(1)数字超出最大数字符号2,向高位进位,数字由1位数变成2位数
(2)由于是向高位进一,所以高位为1,低位已经进位,继续从0开始计数
(3)由(1)和(2)可得进位后的数字为10

十进制中的10与三进制中的10并非同等大小,因为其基数不同,在进行进制的大小比较时,可以将它们换算成十进制来进行直观地比较。

将其它进制转换为十进制时,需要先掌握一个权值的概念。
在进制的权值计算中,第N位的权值为基数的N次方,例如在三进制中,基数为3,
那么第0位的权值为3的0次方,第1位的权值为3的1次方。

因为高位的数是由低位的数进位而来的,在进位的过程中以进制中的基数为单位进行进位,这就是所谓的权值的概念。

转换为十进制,需要将各位的数字与权重相乘再进行求和。
那么,三进制的10转换为十进制后的值为:

(2) 二进制与十六进制
由3.1.1节中的内容可知,计算机使用二进制进行信息的表示。在二进制计数法中,基数为2,二进制10转换为十进制后的大小为:

在计算机系统中,十六进制也是一种很常见的信息表示法。
在十六进制这种计数法中,基数为16,前10个数字仍采用阿拉伯数字,但从10开始,使用英文字母表中的字母A~F进行代替,例如将16进制中的10使用字母A进行代替,将11使用字母B进行代替,以此类推。

前十个符号:
QQ截图20200219215247.png
后六个符号:
AF.png

十六进制不区分字母的大小写,在编程语言中,通常将以0x或0X开头的数字常量作为十六进制,例如0x123F。

计算机只能识别二进制,在处理十六进制的数据时,需要将其转换为二进制来进行处理。

对人类来说,最易于理解的是十进制,但十进制与二进制的转换非常麻烦,且二进制的计数法十分冗长,例如表示十进制为255的二进制数,需要使用八位二进制数:

11111111

在十六进制中,一位十六进制数可以表示四位二进制数,例如一个四位的二进制数1111,用十六进制F就可以进行表示。

F对应的十进制为15,二进制数1111的值刚好为15:

所以在进行信息表示时,经常使用十六进制作为一种折中的方案。

(3) 进制间的相互转换
将十进制整数转换为其它进制,主要采用的是“除基数取余,再逆序排列”的方法。

具体的计算过程:

1. 用基数整除十进制整数,得到一个商和余数
2. 再用基数整除商,又会得到一个商和余数
3. 不断重复第2步,直到商小于1
4. 将计算过程中的余数按从低到高的顺序排列起来

以十进制5转二进制进行举例:

1. 2整除5,得到商2和余数1  
2. 2整除商2,得到商1和余数0
3. 2整除商1,得到商0和余数1
4. 将计算过程中的余数逆序排列,则二进制为:101

二进制101转换为十进制的结果正好为:

十进制小数转其它进制,采用的是“乘基数取整,再顺序排列”的方法,即每次取整数部分,然后再将小数部分与基数相乘,以此不断重复这一过程。

3.1.3 计算机中的信息存储

现代计算机基于冯诺依曼体系,在冯诺依曼体系中,计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成,冯诺依曼体系如下图所示:
图片2.png

其中存储器负责信息的存储,计算机系统将存储器视为一个很大的字节数组,在这个字节数组中按顺序从0开始进行编号:
数字.png

这里的字节编号即为“地址”

计算机将字节作为一个最小的可寻址的存储器单位,以及进行信息处理的二进制数字串。

在计算机中,一个字节包含八位二进制数,那么其大小最大为:

11111111

转换为十进制后的大小:

3.1.4 本节内容知识脑图

通过下面的知识脑图,来对本节的学习内容进行复习:
知识脑图.jpg

3.1.5 本节知识要点

(1) 信息表示是指通过某种事物或逻辑概念来表达信息的含义。在人类文明中,
文字是一种很重要的信息表达方式。

(2) 在计算机中,通过二进制来进行信息的表示和存储。

(3) 计算机由逻辑电路组成,逻辑电路通常只有两种物理状态:“打开”的状态和“关闭”的状态。
这两种状态正好可以用数字1和0来进行表示,使用1表示打开的状态,0表示关闭的状态。

(4) 在进制计数法中,N进制即表示该类计数法中的基数为N,有N个基本的数字符号。
例如在十进制中,基数为10,有10个基本的数字符号。

(5) 将十进制整数转换为其它进制,主要采用的是“除基数取余,再逆序排列”的方法。
将其它进制转换为十进制时,需要先掌握一个权值的概念。将其它进制转换为十进制,
需要将各位的数字与权重相乘再进行求和。

3.1.6 课后习题

(1) 计算机内部为什么使用二进制?简述其主要原因。

(2) 为什么9之后的数字是10?

(3) 写出十进制255转换为十六进制的计算过程

(4) 为什么一位十六进制数可以表示四位二进制数?

(5) 十进制小数转其它进制,采用的是“乘基数取整,再顺序排列”的方法,
    请写出将5.20转换为二进制的计算过程。
    提示:将整数部分与小数部分的二进制进行排列,整数部分仍采用除2取余的算法。

(6) 一个内存块占4个字节,那么它能表示多大的区间范围?假设范围从0开始计数。

薯条老师的个人公众号「薯条编程」。欢迎进行学习上的交流和探讨,对本节内容有任何不懂的地方,可以在评论下方进行留言。

发布了10 篇原创文章 · 获赞 36 · 访问量 1477

猜你喜欢

转载自blog.csdn.net/thereisadownloader/article/details/104401817