资讯详情

计算机科学导论

计算机科学导论

在这里插入图片描述

计算机思维导论

自1946年计算机问世以来,几乎改变了整个世界。

现在我们可以通过计算机做很多事情,比如我们经常听到的人工智能、电子竞技、大数据等,这些都与计算机密切相关,包括我们目前的手机、平板电脑和其他智能设备,这也是由计算机改造的。你可以看看顶部的图片。如果你小时候接触过电脑,你一定对这张图印象深刻(照片拍摄于1996年,在美国加利福尼亚州加利福尼亚州的诺玛县)。这张壁纸是WindowsXP系统的默认壁纸曾经显示在千家万户的电脑屏幕上。

也许你没有接触过电脑,也许你唯一接触过的电脑就是玩游戏,也许你曾经打电脑,让我们在学习C语言之前了解电脑的世界。

计算机世界

虽然电脑的名字听起来很先进,但它也由简单的电路组成。

这是我们初中学过的电路图,但是这个电路太简单了,只能完成一些基本的操作,比如照亮小灯泡。

显然,如果我们想实现计算机的先进计算机,我们肯定做不到。此时,我们需要引入更强大的数字电路。

用数字信号算术和逻辑操作数字量的电路称为数字电路或数字系统。它也被称为数字逻辑电路,因为它具有逻辑操作和逻辑处理功能。现代数字电路由几个由半导体技术制成的数字集成器件组成。逻辑门是数字逻辑电路的基本单元。

本课程详细介绍了计算机底层数字电路的实现原理。

数字电路引入了逻辑判断,我们来看看简单的数字电路:

在数字电路中,两种信号用电压来区分,低电压表示0,高电压表示1。因为这样只能表示两种信号,计算机采用二进制。

二进制是一种广泛应用于计算技术中的数字系统。二进制数据以0和1两个数字表示。其基数为2,进位规则为两进一,借位规则为借一两。

例如,我们通常使用十进制。例如,如果9继续增加1,我们需要进入10。在二进制中,因为只有0和1,所以当1继续增加1时,我们需要进入10(请注意,这不是10,只成10)

当然,仅仅有两个信号是不够的。我们还需要逻辑门来帮助我们完成更多的计算。最基本的逻辑关系是与、或、非,而逻辑门对应于门、或门和非门,可以由电阻、电容、二极管、三极管等分离原件组成(我们不会在这里谈论具体的组成)

例如,与操作相比,由于只有两种类型,我们通常将1表示为真,0表示为假,并与操作一起使用&表示)需要参与两个数字,如:

  • 1 & 1 = 1 两边都是真的,结果才是真的。
  • 1 & 0 = 0 任何一方或两方都不是真的,结果是假的。

或运算(用 | 表示):

  • 1 | 0 = 1 只要两边有一个是真的,结果就是真的
  • 0 | 0 = 0 两边同时是假的,结果是假的

非运算实际上就是取反操作(可以是 ! 表示)

  • !1 = 0
  • !0 = 1 非运算会把真变成假,假变成真

有了这些操作,我们的电路不仅可以实现计算,还可以实现各种逻辑判断,最终发展成我们的计算机。

先大致介绍一下计算机的底层操作原理,再来看看计算机的基本组成。

相信大家熟悉的电脑都是屏幕 以主机的形式,再加上我们的键盘鼠标,就可以开始使用了,但实际上标准的计算机结构并没有那么简单,我们来看看:

我们电脑的核心部件是CPU,因为几乎所有的操作都依赖于CPU(各种计算电路都在进行中)CPU安排好了,我们只需要发送相应的指令进行相应的操作),就像我们的大脑一样,有了大脑才能思考。然而,光有大脑是不够的,还有其他部分来帮助工作。例如,如果我们想在电脑上打字,我们需要连接键盘输入。如果我们想点击桌面上的图标,我们需要一个鼠标来操作光标。这些都是输入设备。图片将显示在我们的计算机启动后的显示器上,实际上显示器是输出设备。

当然,除了这些内容,我们的计算机还需要内存来保存运行中的一些数据,以及外存来保存文件(如硬盘)。我们常说的iPhone13 512G,这个512G它不是指内存,而是指外存。准确地说,它用于存储文件硬盘的大小,而真正的内存通常被称为4G/6G/8G运行内存时,内存的速度远高于外存的速度,所以1G内存的价格远远超过1G硬盘价格。

计算机包括五个部件:计算机、控制器、存储器、输入和输出设备。有了这个完整的硬件环境,我们的计算机就有了一个完整的身体。

我们上面提到的哪些硬件设备属于外设?

操作系统概述

在我们了解计算机的一般原理和组成结构之前,但只有这套硬件不好,如何让这套硬件按照我们想要的方式运行,也非常重要,然后我们需要介绍操作系统。

操作系统(operating system,简称OS)它是一个管理计算机硬件和软件资源的计算机程序。操作系统需要处理基本事务,如管理和配置内存、确定系统资源供需的优先级、控制输入设备和输出设备、操作网络和管理文件系统。操作系统还为用户提供了与系统交互操作的界面接口

在操作系统课程中,将详细说明操作系统的底层操作机制和调度。

一般我们都安装在电脑上。Windows操作系统,现在主流电脑已经预装了Windows11了:

有了操作系统,我们的计算机可以真正运行,我们可以通过键盘和鼠标轻松操作计算机。

然而,操作系统一开始并不是图形界面,它类似于Windows中的命令提示符:

没有图标这些概念,只有一个简单的黑框让我们操作,通过输入命令进行一些简单的使用,程序操作结果将打印在黑框(命令),但虽然只是一个黑框,但可以操作程序,只需要操作我们编写的程序,可以完成各种复杂的计算任务,计算机计算速度远远超过我们的大脑。

天河二号,中国超级计算机系统,计算速度每秒5秒.49亿亿次。

当然,除了我们常见的Windows和MacOS除了系统,我们以后还需要经常处理。Linux操作系统,这种操作系统是开源的,意味着所有人都可以获得源代码进行修改,因此有许多发行版本:

这些发行版有图形界面,也有没有图形界面,没有图形界面Linux将是我们未来学习的重点。

例如,不同操作系统之间的软件并不常见Windows我们的软件通常是.exe后缀名,而MacOS不是,也不能直接运行.exe这是因为不同操作系统的具体实现会有一些差异,程序编译后的格式也会有所不同,所以软件不能通用。

正是因为操作系统,我们才能组织计算机的底层硬件(包括CPU、内存、输入输出设备等。)有序工作,没有操作系统电脑就像一堆废铁,只有身体没有灵魂。

计算机编程语言

我们对计算机的运行原理有了大致的了解,实际上是一套完整的硬件 一个成型的操作系统共同存在。然后我们就可以开始了解计算机的编程语言了。我们之前介绍的操作系统也是编程语言写的,操作系统本身就是软件。

那么操作系统是如何使底层硬件工作的呢?实际上是通过方向CPU发送指令完成。

计算机指令是指挥机器工作的指令和命令,程序是按一定顺序排列的一系列指令,执行程序的过程是计算机的工作过程。指令集,就是CPU一套用于计算和控制计算机系统的指令集合,以及每一种新的指令集合CPU设计中规定了一系列配合其他硬件电路的指令系统。指令集的先进性也与指令集的先进性有关CPU性能发挥,也是CPU性能的重要标志。

在我们的电脑里CPU有很多种,不同的CPU可能有不同的架构,比如现在最常用的架构x86架构,以及我们使用的移动设备,如手机平板电脑arm不同的架构指令集也会有所不同。

众所周知,计算机底层硬件都是用0和1这样的二进制表示的,所以指令也是一样的,比如(这里随便写):

  • 000001 - 代表开机
  • 000010 - 代表关机
  • 000011 - 代表加法操作

当我们通过电路发送给我们时,我们通过电路发送给我们CPU这样的二进制指令,CPU我们可以根据我们的指令执行相应的任务,我们编写的程序保存在硬盘上,我们只需要组织这些指令,根据我们的想法执行相应的命令,可以让计算机计算我们需要的任何内容,这实际上是机器语言。

但随着时代的进步,指令集越来越大,CPU支持的计算类型越来越多。这种纯二进制的编写太累了,我们根本记不住越来越多的命令,所以有汇编语言。汇编语言通过助记符替换这些二进制操作码:

  • MOV 传送字或字节。
  • MOVSX 先扩展符号,再传输。
  • MOVZX 先零扩展,再传输。
  • PUSH 把字压进堆栈。

用一个单词代替这些原始的二进制命令是否容易记住。程序编写完成后,我们只需将这些单词转换为二进制指令就可以了,这也是早期出现的低级编程语言。

不过虽然通过这些助记符就能够很轻松地记住命令,但是还是不够方便,因为可能我们的程序需要完成一个很庞大的任务,但是如果还是这样一条一条指令进行编写,是不是太慢了点,有时候可能做一个简单的计算,都需要好几条指令来完成。于是,高级编程语言——C语言,终于诞生了。

C语言诞生于美国的贝尔实验室,由丹尼斯·里奇(Dennis MacAlistair Ritchie)以肯尼斯·蓝·汤普森(Kenneth Lane Thompson)设计的B语言为基础发展而来,在它的主体设计完成后,汤普森和里奇用它完全重写了UNIX操作系统,且随着UNIX操作系统的发展,C语言也得到了不断的完善。

高级语言不同于低级语言,低级语言的主要操作对象是指令本身,而高级语言却更加符合我们人脑的认知,更像是通过我们人的思维,去告诉计算机你需要做什么,包括语法也会更加的简单易懂。下面是一段简单的C语言代码:

#include<stdio.h>
int main() { 
        
  	int a = 10;   //定义一个a等于10
  	int b = 10;   //定义一个b等于10
  	int c = a + b;   //语义非常明确,c就是a加上b计算出来的结果。
  	return 0;
}

C语言虽然支持按照我们更容易理解的方式去进行编程,但是最后还是会编译成汇编指令最后变成计算机可以直接执行的指令,不过具体的编译过程,我们不需要再关心了,我们只需要去写就可以了,而对我们代码进行编译的东西,称为编译器。

当然,除了C语言之外,还有很多其他的高级语言,比如Java、Python、C#、PHP等等,相比其他编程语言,C算是比较古老的一种了,但是时隔多年直至今日,其他编程语言也依然无法撼动它的王者地位:

可以看到在2021年9月,依然排在编程语言排行榜的第一名(Python和Java紧随其后),可见这门语言是多么的不可撼动,很多操作系统、高级编程语言底层实现,几乎都是依靠C语言去编写的(包括Java的底层也是C/C++实现的)所以学习这一门语言,对于理工科尤其是计算机专业极为重要,学好C语言你甚至可以融汇贯通到其他语言,学起来也会轻松很多。

C语言开发环境部署

完成开发环境部署之后,我们就可以使用C语言来将一句话输出到控制台了,成功编译运行下面的简单程序:

#include <stdio.h>

int main() { 
        
    printf("Hello, World!\n");
    return 0;
}

首先,既然要将我们编写的C语言代码进行编译,那么肯定得找到一个合适的编译器才行,现代的集成开发环境IDE一般都包含了这些编译器,所以我们不需要进行单独的安装。

我们只需要找一个集成开发环境去安装就行了,目前功能比较完善的集成开发环境有:

  • Codeblocks(支持Windows、Linux、MacOS操作系统)
  • Visual Studio(支持Windows、MacOS操作系统)
  • CLion(支持Windows、Linux、MacOS操作系统)

这里就使用CLion作为我们的开发工具使用

首先前往官网下载:CLion: A Cross-Platform IDE for C and C++ by JetBrains

下载完成后我们直接点击安装:

如果你不是很熟悉,建议直接点Next安装到C盘默认路径,不要去修改,当然如果确实C盘没有空间,那可以自行修改为其他路径,但是注意最好路径中不要出现中文。

勾选一下创建快捷方式,然后继续点Next等待安装就行了:

安装完成后,我们可以直接打开:

这里会提示我们激活,点击按钮去官网注册一个账号。注册完成后,推荐去申请一下学生授权,因为试用只有30天:Jetbrains学生授权获取指南 - 知乎 (zhihu.com)

这里我们点击开始试用,然后就可以点击Continue了,现在成功来到主界面:

由于是英文,使用不太方便,所以我们安装一下中文插件:

现在我们就成功安装好CLion集成开发环境了。

现在我们来创建我们的第一个C语言项目(我们的程序是以一个项目的形式进行管理的,这里知道怎么创建就行了):

这里选择C可执行文件,然后项目的保存位置可以自行修改,配置完成后点击创建:

可以看到,在创建之后,会自动为我们生成一段示例代码,而之后我们要编写的代码,都在生成的main.c中进行编写,除了这个文件,其他的全部不要去修改,也不用管是什么意思,后面我们会慢慢介绍。

接着我们需要配置一下工具链,选择捆绑的MinGW

那么这段示例代码有了,我们如何编译运行呢?

我们可以点击代码旁边的绿色三角形符号或是右上角的绿色三角形,就可以直接编译运行我们的代码了。运行的结果是在控制台输出一个“HelloWorld!”,当然我们也可以直接运行编译出来的可执行文件:

我们可以看到,这里生成了一个项目名称.exe文件,这种就是Windows环境下可以直接运行的应用程序,我们可以打开这个文件夹,直接使用cmd来运行:

运行出来的效果是一样的,这种程序实际上就是最原始的命令行程序,输入和输出都是在这种黑框框中进行的,而我们的主要学习目标也是这种命令行程序。

这样我们就配置好了开发环境,然后就不要去动其他的东西了

标签: 9015三极管应该配那种二极管

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台