C语言编程基础学习笔记【一】

第一章 程序设计基础

一个完整的计算机系统由硬件系统和软件系统组成。

1.1计算机系统和工作原理

1.1.1计算机系统的组成

现代计算机系统的体系结构和基本工作原理由冯诺伊曼于1946年提出,以此为基础的计算机统称为冯诺依曼计算机。
特点:

  • 运算器、控制器、存储器、输入设备、输出设备组成,工作时有两种信息在流动:数据流、控制流。
  • 采用“存储程序”思想,程序和数据均以二进制表示,以相同方式存放在存储器中,按地址寻访。

1.运算器
又称算术逻辑单元ALU,主要功能是算术逻辑运算。运算器由一个加法器、几个寄存器和一些控制线路组成。加法器接收寄存器传来的数据,进行运算并将结果传送给寄存器,寄存器用于存放运算的数据、中间结果和最终结果。运算器中的数据取自内存,运算的结果又送回内存,运算器对内存的读写操作是在控制器的控制之下进行的。
2.控制器
控制器由程序计数器PC、指令寄存器IR、指令译码器ID和时序控制电路等组成,指挥计算机的各个部件按照计算机指令的要求协调地工作。程序计数器指示下一条执行指令的存储地址,从存储器中取得指令放在指令寄存器,由指令译码器将指令中的操作码翻译成相应的控制信号,再由控制部件将时序控制电路产生的时钟脉冲与控制信号组合起来,控制各个部件完成相应的操作。计算机在控制器的控制下,能自动、连续地按照编制好的程序完成一系列指定的操作。
中央处理器CPU是计算机中最重要的一个部件,由运算器和控制器组成。
3.存储器
通常分为内存储器和外存储器。内存储器常称为内存或主存,用来存放执行的程序及其数据。内存划分为很多单元,称为“内存单元”,存放一定数量的二进制数据。每个内存单元都有唯一的编码,称为内存单元的地址。
存储器容量是值存储器中最多可存放二进制数据的总和,其基本单元是字节B(byte),每个字节包含8个二进制位b(bit)。常用以下单位表示:KB、MB、GB、TB。
4.输入设备
键盘、鼠标、触摸板、手写板、扫描仪、光笔、数字化仪、A/D转换器
5.输出设备
显示器、打印机、绘图仪、D/A转换器

计算机类型:高性能计算机(巨型计算机/大型机)、微型计算机(个人计算机PC四类:台式、笔记本、平板、便携移动计算机)、工作站(专长数据处理和高性能图形功能的计算机、服务器、嵌入式计算机等。

1.1.2指令与程序

1.指令
计算机执行某种操作的机器命令,可以被计算机硬件直接识别和执行。计算机指令常用二进制代码表示,一条指令通常由操作码和操作数组成。

操作码指示该指令要完成的具体操作,如:取数、加法、移位、比较等。操作数指明操作对象的数据或所在的内存单元地址,可以是源操作数的存放地址,也可以是操作结果的存放地址。按操作数的个数划分,指令可以分为单操作数指令、双操作数指令、三操作数指令或无操作数指令。

一台计算机所有指令的集合称为指令系统。不同类型的计算机,指令类型和数量是不同的。

指令系统一般具有以下功能的指令:

  1. 数据传送指令:将数据在CPU与内存之间进行传送
  2. 数据处理指令:对数据进行算术、逻辑、比较、位运算
  3. 程序控制指令:控制程序中指令的执行顺序,如:条件跳转、无条件跳转、调用、返回、停机、中断、异常处理
  4. 输入输出指令:实现外部设备与主机之间的数据传输
  5. 硬件管理指令:对计算机硬件进行管理
  6. 其他指令:特殊功能处理,如:多媒体、DSP、通信、图形渲染

2.计算机的工作原理
计算机工作过程是快速执行指令的过程。指令的执行分为三个步骤:

  1. 取指令:按照程序计数器中的地址,从内存中取出指令送到指令寄存器中。
  2. 分析指令:对指令寄存器中的指令进行分析,由指令译码器对操作码进行译码,转换为相应的控制信号并确定操作数地址。
  3. 执行指令:由执行部件完成该指令所要求的操作,如:执行加法操作,将寄存器的值与累加器的值相加,结果依然放在累加器中。

一条指令完成,程序计数器+1或将跳转地址送入程序计数器,继续重复以上步骤 。

早期计算机串行执行指令,现代计算机使用指令流水线技术并行执行指令。

3.程序
计算机程序是指完成一定功能的指令的有序集合。计算机程序是数据流和控制流的工作过程。数据流是数据形式的表示,即程序所用数据的数据结构和组织形式。控制流是对数据进行的操作,称为算法。一个程序包括算法和数据两部分。
程序设计=算法+数据结构+程序设计方法

4.软件
程序、程序运行需要的数据、开发使用维护程序需要的文档的集合。

  • 系统软件:控制计算机运行、管理计算机资源,为应用软件提供支持服务的一类软件,通常包括操作系统、语言处理程序、各种实用程序(诊断程序)
  • 应用软件:利用计算机软、硬件资源为某一专门的应用目的而开发的软件,包括办公软件、图形图像软件、数据库系统、网络软件、多媒体处理软件以及学习娱乐软件

程序设计是实现问题求解的过程,是软件开发中的重要组成部分。程序设计以某种语言为工具,包括分析、设计、编码、测试和排错阶段。

软件开发过程分为需求分析、概要设计与详细设计、编制程序、软件测试和软件维护5个阶段。

1.2信息的表示与存储

1.2.1计算机数字系统

r进制数,r称为基数,每个位置的单位值ai为位权。

二进制 十进制 八进制 十六进制
B(binary) D(decimal) O(octal) H(hexadecimal)
0、1 0……9 0……7 0……9、A……F

N = a n − 1 × r n − 1 + a n − 2 × r n − 2 + ⋯ + a 1 × r 1 + a 0 × r 0 + a − 1 × r − 1 + ⋯ + a − m × r − m = ∑ i = − m n − 1 a i × r i \begin{aligned} N&= a_{n-1}\times r^{n-1}+a_{n-2}\times r^{n-2}+\cdots +a_{1}\times r^{1}+a_{0}\times r^{0} +a_{-1}\times r^{-1}+\cdots+a_{-m}\times r^{-m}\\ &=\sum_{i=-m}^{n-1}a_{i}\times r^{i} \end{aligned} N=an1×rn1+an2×rn2++a1×r1+a0×r0+a1×r1++am×rm=i=mn1ai×ri

1.2.2进位计数制转换

将整数和小数部分分别转换再加起来
1.十进制数转换为r进制数

  • 十进制整数转换为r进制整数
    除r取余数,直到商为0,先得到a0,最后得到an-1,将得到的余数倒序排列即为r进制整数
  • 十进制小数转换为r进制小数
    乘r取整数,直到小数为0或达到要求精度,先得到a-1,顺次排列即为r进制小数
  • 转换数字较大
    对照位权表,用邻近数字相加减(r进制数相加减)

2.r进制数转换成十进制数
展开乘位权

3. 二、八、十六进制数相互转换
81=23,161=24,即1位八进制数相当于3位二进制数,1位十六进制数相当于4位二进制数。

1.3程序设计语言

1.4程序设计概述

1.5C语言概述

猜你喜欢

转载自blog.csdn.net/qq_45929064/article/details/108055983