计算机组成原理
计算机组成
计算机硬件通常由以下几部分组成:
- 中央处理器(CPU):负责执行计算机指令,完成各种计算和逻辑操作。
- 存储器(Memory):用于存储计算机执行程序所需的数据和指令,包括主存(Random Access Memory,RAM)和辅助存储器(如硬盘、光盘等)。
- 输入设备:用于向计算机输入数据和指令,如键盘、鼠标、扫描仪等。
- 输出设备:用于将计算机处理结果显示或打印出来,如显示器、打印机等。
- 总线:用于连接计算机各个部分,包括数据总线、地址总线和控制总线等。
存储器对比
磁盘(Disk)
磁盘是计算机中最慢的存储器之一,读取速度比内存慢很多。由于磁盘通常用于永久存储数据,每秒钟可以完成的读取操作数量通常在几百到几千之间。
内存(Memory)
内存的读取速度比寄存器慢,但是比磁盘快很多。由于内存的容量较大,每秒钟可以完成的读取操作数量通常在数百万到数千万之间。
寄存器(Register)
寄存器是CPU内部最快的存储器,读取速度非常快,通常是其他存储器读取速度的几百倍。由于寄存器的大小有限,只能存储极少量的数据,因此每秒钟可以完成的读取操作数量非常多,可能在数十亿次到数百亿次之间。
总结:
读取速度:寄存器 > 内存 > 磁盘(外存)【速度差值在100倍左右】
数据调度方向:
编程语言
编程语言的发展历程
机器语言(1930-1960s)
机器语言阶段:计算机发明初期,程序员需要使用二进制码来编写程序,这些二进制码被称为机器语言。
机器语言非常难以记忆和理解,难以维护和调试,因此随着计算机技术的发展,人们开始探索更高级的编程语言。
汇编语言(第一个汇编语言1947 伦敦大学)
对于人类来说,二进制程序是不可读的,根本看不出来机器干了什么。为了解决可读性的问题,以及偶尔的编辑需求,就诞生了汇编语言。
汇编语言阶段:为了简化机器语言的编写,人们发明了汇编语言,它使用符号代替了二进制码。汇编语言虽然比机器语言更易于理解和编写,但仍然需要程序员对计算机硬件有深入的了解,难以编写大型程序。
我们知道,CPU 只负责计算,本身不具备智能。
输入一条指令(
instruction
),它就运行一次,然后停下来,等待下一条指令。这些指令都是二进制的,称为操作码(opcode
),比如加法指令就是00000011
。汇编语言诞生后,相较于机器语言就多出一个步骤,即把这些文字指令翻译成二进制,这个步骤就称为
assembling
,完成这个步骤的程序就叫做assembler
。它处理的文本,自然就叫做aseembly code
。标准化以后,称为assembly language
,缩写为asm
,中文译为汇编语言。
现代高级语言
- 1972 C语言
- 1980 C++
- 1991 Python/VB
- 1994 Java
- 1995 PHP/JavaScript
高级语言阶段,高级语言提供了更加抽象和易于理解的语法,使得编写程序变得更加简单和高效。随着计算机硬件的发展,高级语言的应用越来越广泛,例如C、C++、Java、Python、JavaScript等。
实例
实现1+1:
机器语言实现:
00011010 00000001 // 将1加载到寄存器A中
00011010 00000001 // 再将1加载到寄存器B中
00000100 00001000 // 将寄存器A中的值与寄存器B中的值相加,并将结果保存到寄存器A中
在这个示例中,第一条指令将数字1加载到寄存器A中,第二条指令将数字1加载到寄存器B中,第三条指令将寄存器A和B中的值相加,并将结果保存到寄存器A中。
汇编语言实现:
mov ah, 1
add ah, 1
在这个示例中,使用MOV
指令将数字1移动到AH
寄存器中,然后使用ADD
指令将数字1加到AH
寄存器中。最终,AH
寄存器中的值为2。
C语言实现:
int c = 1 + 1;
代码复杂度、易用性比较
问题:
编写一个程序,读取一个文件中的文本内容,并统计其中每个单词出现的频率。
Python实现:
import re
with open('example.txt', 'r') as f:
text = f.read()
words = re.findall(r'\b\w+\b', text.lower())
freq = {}
for word in words:
freq[word] = freq.get(word, 0) + 1
for word, count in freq.items():
print(f'{word}: {count}')
C语言实现:
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define MAXLEN 1000
int main(){
FILE* fp;
char line[MAXLEN];
char* word;
int freq[MAXLEN] = {0};
fp = fopen("example.txt", "r");
if (fp == NULL)
{
printf("无法打开文件\n");
return 1;
}
while (fgets(line, MAXLEN, fp) != NULL)
{
word = strtok(line, " \t\r\n");
while (word != NULL)
{
for (int i = 0; word[i] != "\0"; i++)
{
word[i] = tolower(word[i]);
}
freq[word]++;
word = strtok(NULL, " \t\r\n");
}
}
for (int i = 0; i < MAXLEN; i++)
{
if (freq[i] > 0)
{
printf("%s: %d\n", i, freq[i]);
}
}
fclose(fp);
return 0;
}
总结:
Python:
- 优点:开发效率高、封装性高
- 缺点:运行性能慢
编译型语言 & 解释型语言
按编译类型分类
- 编译型:C、C++、GO ···
- 解释型:Python、PHP、Ruby、JavaScript ···
- 混合型:Java
编译型语言优缺点
- 1.一次性的编译成平台相关的机器语言文件,运行时脱离开发环境,运行效率高;
- 2.与特定平台相关,一般无法移植到其他平台;
解释型语言优缺点
- 1.解释型语言每次运行都需要将源代码解释称机器码并执行,执行效率低;
- 2.只要平台提供相应的解释器,就可以运行源代码,所以可以方便源程序移植;
Python环境的安装
为何要装Python环境 ?
因为我们写的代码是人类可读的,但计算机是靠电流驱动的,它只认识010100101,我们即将安装的python环境就是Python解释器,它就像个翻译官,把人类代码翻译成机器能读懂的010101二进制代码。
Python目前已⽀支持所有主流操作系统,在Linux,Unix,Mac系统上自带Python环境,只有Windows系统需要安装一下。
安装Python解释器
打开Python官网:Welcome to Python.org
点击Downloads
这里有32位、64位和64位ARM框架版本,要和自己的电脑系统相对应。
下载后执行,点击下一步安装就行了,注意选择添加Python到当前⽤用户环境变量量里。
Windows配置环境变量量(选做)
如果上一步你没有勾选Add python.exe to PATH
,也不用太担心。我们可以自己添加Python到环境变量。
以Win11为例:
找到我的计算机,右单击 —>属性 —> 高级系统设置 —> 环境变量
找到变量名为Path
的环境变量,双击进入,再点击 新建 ,再填入Python的安装位置。
本机的安装位置为c:\python\
现在我们来验证一下是否添加成功:
windows —> 运行 —> 输入cmd
,然后回车,弹出cmd
程序,输⼊入python
,如果能进入交互环境 ,代表环境变量添加成功
安装集成开发环境(IDE)
目前python有很多集成开发环境,如**Eclipse + PyDev、Sublime Text、Visual Studio Code**、PyCharm
在这里作者推荐使用 PyCharm
,安装教程也以 PyCharm
为例,其他 IDE 的安装请自行查找。
PyCharm
介绍
Pycharm
是由JetBrains
打造的一款专门用于编写和开发Python
应用程序的集成开发环境IDE
,也是专业的Web开发
工具。
当你非常熟悉Python
开发的时候,那么这款IDE将会帮助你提高开发效率,因为它不仅仅是写代码那么简单,它还有调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制
等等一系列功能!
PyCharm
版本
PyCharm
的版本类型包括专业版、教育版、社区版
社区版(Community)
这个版本官方是完全免费
的,适用于个人
和小型团队
,同样这个版本也带有最基本的Python开发功能, 比如:代码高亮、代码完成、调试工具
等
这也是今天主要讲的版本,对于刚刚入门Python
开发的小伙伴来说完全够用了
专业版(Professional)
这个版本是收费
的(有30天的试用期), 并且价格根据所选择的许可类型
和期限而有所不同, 许可类型包括个人
和商业许可证
,期限包括1年、2年和3年等等,它适用于公司进行专业互联网开发, 也就是商业开发,功能更加强大。
它包含了所有社区版(Community)
的所有功能,并且还包含了更多的高级功能,如代码分析、集成版本控制、Web开发
工具等。
教育版(Education)
这个版本主要是针对教育
和培训机构
设计的版本,它包含了Professional
版本的所有功能,并且可以通过教育资格申请
来获取学生和教师的免费
使用权利
下载 PyCharm
下载地址 Download PyCharm: Python IDE for Professional Developers by JetBrains
找到下面的PyCharm Community Edition(社区版)
点击下载即可!
出现下图界面就代表开始下载了
下载完成之后,我们会得到一个的安装包文件!
安装 PyCharm
安装其实也很简单,就跟一般的软件安装一样!
我们首先双击安装包文件, 会弹出以下对话框
点击下一步
接着我们选择安装目录,建议安装容量大一点的盘符下,不要安装在C盘
然后继续点击下一步
接着来到我们的设置对话框,建议把选项全部勾选上, 然后点击下一步
继续!
最后点击安装
即可开始安装PyCharm
完成安装!