#2024-2025-1学号20241309《计算机基础与程序设计》第四周学习总结
作业信息
这个作业属于哪个课程 | 2024-2025-1-计算机基础与程序设计 |
---|---|
这个作业要求在哪里 | 2024-2025-1计算机基础与程序设计第四周作业 |
这个作业的目标 |
|作业正文|2024-2025-1学号20241309《计算机基础与程序设计》第四周学习总结
教材学习内容总结
《计算机科学概论》第四章
《计算机科学概论》第七版第四章门和电路内容总结
一、布尔运算
1. 逻辑值
- 布尔代数处理的是真(True)和假(False)值,在计算机中通常用1表示真,0表示假。
2. 基本布尔运算 - AND(与)运算:只有当两个输入都为真(1)时,结果才为真(1),否则结果为假(0)。例如,输入A = 1,B = 1时,A AND B = 1;若A = 0,B = 1,则A AND B = 0。
- OR(或)运算:只要两个输入中有一个为真(1),结果就为真(1)。当A = 0,B = 0时,A OR B = 0;若A = 1,B = 0,则A OR B = 1。
- NOT(非)运算:它只有一个输入,对输入值取反。若A = 0,则NOT A = 1;若A = 1,则NOT A = 0。
二、逻辑门
1. 门的概念
- 逻辑门是实现布尔运算的电子元件。
2. 基本逻辑门 - 与门(AND gate):对应AND运算,有两个或多个输入和一个输出。当所有输入为高电平(1)时,输出为高电平(1),否则输出为低电平(0)。
- 或门(OR gate):实现OR运算,只要有一个输入为高电平(1),输出就为高电平(1)。
- 非门(NOT gate):执行NOT运算,也叫反相器,它将输入信号取反后输出。
- XOR(异或)门:当两个输入不同时(一个为0,一个为1),输出为1;当两个输入相同时(都为0或都为1),输出为0。
三、组合电路
1. 电路构建
- 可以通过组合基本逻辑门来构建更复杂的逻辑电路。例如,通过与门、或门和非门的组合,可以实现各种布尔函数。
2. 半加器 - 半加器是一种简单的组合电路,用于实现两个一位二进制数的加法。它有两个输入(加数A和加数B)和两个输出(和S和进位C)。S = A XOR B,C = A AND B。
3. 全加器 - 全加器用于实现三位二进制数(包括低位进位)的加法。它有三个输入(两个加数和低位进位)和两个输出(和与进位)。多个全加器可以级联构成二进制加法器,用于处理多位二进制数的加法运算。
四、集成电路
1. 概念
- 集成电路(IC)是将大量的逻辑门和电路集成在一个小芯片上。它极大地提高了电路的性能和可靠性,同时减小了设备的体积。
2. 类型 - 有小规模集成电路(SSI)、中规模集成电路(MSI)、大规模集成电路(LSI)和超大规模集成电路(VLSI)。随着技术的发展,VLSI能够在一个芯片上集成数以百万计甚至更多的晶体管,广泛应用于计算机、手机等电子设备中。
《计算机科学概论》第五章
一、计算机的各个部件
二、冯·诺伊曼体系
中央处理单元(CPU):CPU是计算机的大脑,负责解释和执行存储在内存中的指令,以及处理数据。
存储器:存储器用于存储程序和数据。在冯·诺依曼体系结构中,指令和数据共享同一个存储空间,即所谓的冯·诺依曼瓶颈。
输入设备:输入设备允许用户将数据和指令输入到计算机中,例如键盘、鼠标、扫描仪等。
输出设备:输出设备使计算机能够将处理结果展示给用户,例如显示器、打印机等。
控制单元:控制单元负责从存储器中取出指令,解码指令,并协调CPU内部的其他部件来执行这些指令。
算术/逻辑单元(ALU):ALU是执行算术运算(如加法、减法)和逻辑运算(如AND、OR)的部件。
寄存器组:寄存器是CPU内部的高速存储器,用于存储指令执行过程中的中间数据和结果。常见的寄存器包括程序计数器(PC)、累加器(用于存储操作数和结果)和其他用于地址和数据暂存的寄存器。
三、嵌入式系统和并行结构
嵌入式系统:嵌入式系统作为大型系统的一部分,是为完成小范围功能而专门设计的计算机。通常来讲,一个嵌人式系统集成在单个微型处理器芯片上,程序被存储在 ROM中。几乎所有具有数码显示的电子设备(比如电子手表、微波炉、录像机、汽车)都使用了嵌入式系统。事实上,嵌入式系统无处不在:从消费者的电子产品到厨房用具、从汽车到网络设备以及工业控制系统,你都能在各种设备中找到嵌入式系统。有些嵌入式系统包含操作系统,但更多的是用来完成专门的用途而将整个电路当作一个单独的程序实施。
并行计算:并行计算是指同时使用多种计算资源解决计算问题的过程。这些计算资源可以是多个处理器、多个计算机或者是特定的硬件加速器等,它们协同工作来加速计算任务的完成。
二、并行计算的类型
1. 位级并行
- 位级并行是在计算机硬件的较低层次上实现的并行。例如,现代CPU中的64位数据总线可以同时处理64位的数据,相较于早期的32位数据总线,在相同的时钟周期内能够处理更多的数据,从而提高了运算速度。这种并行是基于计算机硬件架构本身的设计来实现数据处理的加速。
2. 指令级并行 - 在处理器内部,指令级并行通过硬件技术使多条指令在同一时间内重叠执行。例如,超标量处理器可以在一个时钟周期内发射多条指令到不同的执行单元进行执行。这就要求处理器能够对指令进行动态调度,判断哪些指令可以并行执行,哪些指令存在依赖关系需要顺序执行,以此来提高处理器的指令执行效率。
3. 数据并行 - 数据并行是指多个处理单元对不同的数据执行相同的操作。例如,在对一个大型矩阵进行加法运算时,可以将矩阵划分成多个子矩阵,分配给不同的处理单元进行加法操作,最后再将结果合并。这种方式在科学计算、图像处理等领域应用广泛,能够充分利用多个处理单元的计算能力来加速数据处理过程。
4. 任务并行 - 任务并行是把一个大的任务分解成多个子任务,由不同的处理单元分别执行不同的子任务。比如在视频编辑软件中,一个处理单元负责视频解码,另一个处理单元负责特效处理,还有处理单元负责视频编码等操作。这种并行方式需要合理地划分任务,并处理好各子任务之间的依赖关系和同步问题。
《C语言程序设计》第三章
《C语言程序设计》第四版第三章基本算术运算内容总结如下:
一、算术运算符
1. 基本运算符
- 加法运算符(+):用于计算两个操作数的和。例如, a + b 表示将变量 a 和 b 的值相加。
- 减法运算符(-):有两个作用,一是用于计算两个操作数的差,如 a - b ;二是作为负号,用于表示一个数的相反数,如 -a 表示 a 的相反数。
- 乘法运算符(*):用于计算两个操作数的乘积,如 a * b 。
- 除法运算符(/):当两个操作数都是整数时,执行整数除法,结果为商的整数部分。例如, 7/2 的结果是 3 。如果操作数中有一个是浮点数,则执行浮点数除法,结果为精确的商。例如, 7.0/2 的结果是 3.5 。
- 求余运算符(%):也叫取模运算符,用于计算两个整数相除的余数。例如, 7 % 2 的结果是 1 。求余运算要求操作数必须是整数。
二、算术表达式
1. 表达式构成
- 算术表达式由操作数和算术运算符组成。操作数可以是常量、变量或函数调用等。例如, (a + b) * c / d 是一个算术表达式,其中 a 、 b 、 c 、 d 是变量, + 、 * 、 / 是算术运算符,括号用于改变运算顺序。
2. 运算顺序 - 遵循数学中的先乘除后加减原则。如果有括号,则先计算括号内的表达式。同一级别的运算符(如乘法和除法)按照从左到右的顺序进行运算。例如,在表达式 3 + 4 * 2 中,先计算 4 * 2 得到 8 ,然后再加上 3 ,结果为 11 ;而在表达式 (3 + 4) * 2 中,先计算括号内的 3 + 4 得到 7 ,然后再乘以 2 ,结果为 17 。
三、数据类型转换
1. 自动类型转换(隐式转换)
- 当不同类型的数据进行运算时,C语言会自动进行类型转换。一般规则是将低精度的数据类型转换为高精度的数据类型。例如,在表达式 int a = 3; float b = 4.5; float c = a + b; 中,变量 a 是整型,变量 b 是浮点型,在计算 a + b 时, a 会被自动转换为浮点型,然后再进行加法运算,结果 c 为浮点型。
- 常见的转换顺序是 char 、 short 会先转换为 int , float 会转换为 double ,如果有不同类型的数据进行运算,会按照精度从低到高的顺序转换。
2. 强制类型转换(显式转换)
- 可以使用 (类型名)表达式 的形式进行强制类型转换。例如, int a = (int)3.7; ,这里将浮点数 3.7 强制转换为整数,结果 a 的值为 3 。强制类型转换可能会导致数据精度的损失,使用时需要谨慎。
四、自增和自减运算符
1. 自增运算符(++)
- 有两种形式:前缀形式( ++a )和后缀形式( a++ )。
- 前缀形式是先将变量的值加1,然后再使用变量的值。例如, int a = 3; int b = ++a; ,执行后 a 的值变为 4 , b 的值也为 4 。
- 后缀形式是先使用变量的值,然后再将变量的值加1。例如, int a = 3; int b = a++; ,执行后 a 的值变为 4 ,但 b 的值为 3 。
2. 自减运算符(--) - 与自增运算符类似,也有前缀形式( --a )和后缀形式( a-- )。
- 前缀形式是先将变量的值减1,再使用变量的值;后缀形式是先使用变量的值,再将变量的值减1。例如, int a = 3; int b = --a; ( b 的值为 2 , a 的值为 2 ), int a = 3; int b = a--; ( b 的值为 3 , a 的值为 2 )。
基于AI的学习
其他(思考)
要打好C语言的基础,以后编程才能更顺利。