笔记(C,C++,程序员).pdf
《笔记(C,C++,程序员).pdf》由会员分享,可在线阅读,更多相关《笔记(C,C++,程序员).pdf(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、程序员笔记第一章1 计算机硬件:数制:11011()nnmrnnmnnmNR RR RRRrRrRrLLL数制间转换:十进制整数转r 进制-除取余数十进制小数转r 进制-乘取整数分为:定点数和浮点数定点数据编码(二进制):原码:1102200110nnxxxxxxxxxxn-1整数 =2小数 =1补码:(正数为本身,负数除符号位外取反加1)所以补码的设计目的是:使符号位能与有效值部分一起参加运算,从而简化运算规则.使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计1102200110nnxxxxxxxxxxn整数 =2小数 =2反码:(正数为本身,负数除符号位外取反)11+021)2
2、001)10nnxxxxxxxxxxn-n1整数 =(2小数 =(2-2移码:主要为了浮点数设计的(目的是为了保证浮点数的机器零为全0)111222111nnnxxxxxx整数=小数=注意:原码和反码,0 都有两种表示补码和移码,0 只有一种表示浮点数:flaot(32 位),double(64 位)Ms-符号位(1 位)E-阶码(8 位或 11 位)M-尾数绝对值(23 位或 52 位)Ms 符号位,0 表示正号,1 为负号E 是阶码,用移码的形式表示M 是尾数,用补码表示如:0.1101101*2E-10表示为0 0 0000110 11011010000000000000000 注意:第
3、二个0 表示阶码的符号,0 负 1 正数据校验的方法有奇偶校验码、海明校验码、CRC 校验码2计算机基本结构(总线结构、CPU、存储器系统、IO 系统)(1)总线结构:内部总线(CPU 内部)外部总线(系统总线,CPU、存储器、IO 之间)系统总线(三类):数据信号线(DB)什么内容地址信号线(AB)去哪里控制信号线(CB)控制常用的微机总线:ISA、EISA、VESA、PCI(2)中央处理器(CPU):分为寄存器组、算术逻辑单元(ALU)、控制单元(2.1)寄存器组(两类)用户可见的寄存器(user-visible registers):分为通用寄存器数据寄存器地址寄存器:段地址寄存器,间址
4、寄存器和堆栈寄存器标志寄存器状态控制寄存器(control and status register):分为程序计数器(PC)指令寄存器(IR)存储器地址寄存器(MAR)存储器缓冲寄存器(MBR)程序状态字(PSW)(2.2)运算器(ALU)(2.3)控制器(CU)分为时钟信号指令周期指令寄存器取、分析、执行指令中断控制逻辑总线控制逻辑(BUS)(3)存储器系统:分为主存储器系统、辅助存储器(3.1)主存储器:分为 RAM(DRAM-动态,SRAM-静态)ROM PROM EPROM 2E PROMFM(Flash Memory)(3.2)辅助存储器(磁带、磁盘、RAID、光盘)(4)IO 系统
5、(4.1)常见的外部设备:输入设备:键盘、鼠标、光笔输入、图像输入设备、语音输入设备、光学字符控制、条形码输入输出设备:显示设备(CRT、LCD)、打印设备(4.2)IO 系统的工作方式:程序控制方式:CPU 必须等待程序中断方式:CPU 中断相应DMA 方式:无须CPU 控制(4.3)设备接口(external interface)串行和并行接口(IDE 接口和 USB)3.指令系统(1)机器指令的格式(操作码、源操作数、目的操作数、下一条指令的地址)指令格式:ADD AX,BX 指令操作码:两种格式(固定、可变格式)操作数数据格式:地址、数值、字符、逻辑数据(2)指令的种类和功能数据传送类
6、(Data Transfer)如:MOVE、PUSH 算数运算类(Arithmetic)如:加减乘除逻辑类(Logical)如:NOT、AND 数据变换类(Conversion)输入/输出类(IO)如:Read、Write 系统控制类(System Control)控制权转移类(Transfor of Control):跳转指令、过程调用返回指令、陷阱指令(3)指令的寻址方式立即数寻址方式直接寻址间接寻址寄存器寻址基址寻址变址寻址相对寻址第二章操作系统层次:1.什么是操作系统?用户观点:用户与计算机的接口资源管理观点:硬件资源(设备)和软件资源(程序、数据),操作系统是控制和管理计算机系统资源
7、的程序。进程观点(Process):操作系统控制和协调这些进程的运行分层观点:批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统操作系统的功能(5部分:处理器管理、存储管理、设备管理、文件管理、用户接口)处理器管理:线程(thread)作为分配处理器的基本单位,以作业和进程的方式进行管理存储管理:内存、虚拟内存设备管理:采用通道、控制器、设备三级控制方法文件管理:管理文件的存储空间,提供信息的共享和保护用户接口:命令接口和图形接口中断的基本概念:内部中断(CPU 内部):异常中断(陷阱中断、故障中断、终止)、软件中断(用户应用程序调用系统软件中子程序的主要方法)外部中断(
8、CPU 外部):可屏蔽中断(常规外部设备,用户开发的接口设备等与 CPU 交换信息使用)、非可屏蔽中断(致命异常错误)2.并发进程(1)程序、进程和处理器程序是指令的集合进程是运行中的程序(2)进程间的通信互斥:任何时刻最多只允许一个进程去使用同步:多个进程之间协调对某些临界资源的访问顺序死锁:资源被占用,没有一个进程能继续运行(3)进程的状态及其转换进程管理:进程控制:新创建的进程处于就绪状态,在三种状态下转换进程调度:主要功能是确定在什么时候分派处理器,并确定分给哪一个进程。3.存储管理地址重定位:从辅存(硬盘)装入主存(内存)的过程。存储器管理的功能:分配与回收分配:静态分配、动态分配存
9、储扩充:虚拟存储器共享与保护实存和虚存:(1)实存管理:单一连续分配、固定分区分配、可变分区分配、交换(2)虚存组织:运行进程访问的地址与主存可用的地址相脱离。运行进程可以访问的地址称为虚地址。主存中使用的地址称为实地址。分为:分段存储组织:虚地址(段号,段内位移)页式存储组织:虚地址(页号,页内位移)段页式存储组织:虚地址(段号,段内页号,页内位移)虚存管理:(只考虑相互有关的数据之间的相对位置)分为:调入策略:请求调入方案、先行调入方案放置策略:页,段置换策略:最优(OPT)算法、随机(RAND)算法、先进先出(FIFO)算法、最近最少使用(LRU)算法4.设备管理(1)设备的类型(2)设
10、备管理的功能(3)数据传输控制方式(外设与主存之间):程序控制方式中断方式直接存储访问(DMA)方式通道方式输入 输出处理器(IOP)(4)设备连接(5)设备的分配:充分发挥设备的使用效率,尽可能地让设备忙又要避免形成死锁。(6)磁盘调度算法:先优化查找策略,再优化旋转等待策略。(7)RAID(独立冗余磁盘阵列):通过把多个磁盘组织在一起作为一个逻辑卷提供磁盘跨越功能(RAID0)通过把数据分成多个数据块(Block)并行写入/读出多个磁盘以提高访问磁盘的速度(RAID3)通过镜像或校验操作提供容错能力(RAID 1,RAID2)(5)组快与缓冲高速外设的输入输出操作是以块为单位的,缓冲是一种
11、暂存技术,分为硬件缓冲和软件缓冲。(6)虚设备5.文件管理软资源:系统程序,实用程序,应用程序,文档材料文件的概念:数据项、记录、文件和数据库文件系统:系统软件和文件组成文件类型:按用途、按信息流向、按组织形式(UNIX 系统的特殊文件,即把所有输入输出设备都视作文件)文件的结构和组织:分为文件的逻辑结构:(看到的)文件的物理结构:(实际硬盘上的)分为顺序分配链接分配索引分配(UNIX 采用三级间接索引技术)文件访问方法:顺序访问、随机访问文件存储设备管理:位图法、链接法、索引法文件控制块和文件目录:文件控制块(文件描述词)FCB 是文件存在的唯一标志。分为:基本信息:如文件名保护信息:如存储
12、位置使用信息:如时间信息文件目录:文件控制块的集合称为文件目录。一般目录结构形式有一级目录结构,二级目录结构和多级目录结构。文件的使用:工作目录(当前目录)文件的使用:(1)目录管理命令如:建立目录,显示工作目录(2)文件控制命令如:建立文件,删除文件(3)文件存取命令如:读写文件,显示文件内容文件共享和安全6.作业管理和用户界面作业(job):系统为完成一个用户的计算任务所做的工作总和。作业控制联机作业方式:直接输入作业控制命令脱机作业方式:作业控制语言(JCL)作业调度:调度目标(5 点):响应时间快周转时间或加权周转时间短均衡的资源利用率吞吐量大系统反应时间短调度算法:优先级调度用户界面
13、:操作系统的接口:命令接口,程序接口操作环境7.UNIX 系统系统结构:UNIX 是一个分时操作系统文件系统:字符流文件,在物理上组织为索引文件,用户可以指定或改变工作目录进程管理与存储管理缓冲机制和设备驱动:缓冲池,提前读,延迟写中断处理:硬件控制负责接收中断,负责与机器的通信。Shell:命令解释程序格式:命令名参数,参数,(1)重定向操作“”标准输出重定向符号“”标准错误重定向符号(2)管道是UNIX 系统中连接两进程,传递数据流,符号为“|”系统调用:trap 指令第三章软件工程基础知识1.简介:软件的生存周期:定义:系统分析(总体要求,适用范围,硬件、软件)软件项目计划(可行性分析、
14、项目计划书)需求分析(功能,逻辑)开发:软件设计(概要设计阶段,详细设计阶段)编码(程序清单)软件测试(另外部门的程序员或系统分析员)维护:出错环境变化扩充需求淘汰2.系统分析和软件项目计划系统分析:规模、范围、硬件环境和支撑软件可行性分析:技术、经济、使用、法律编制项目开发计划3.需求分析需求分析任务:确定软件系统的综合要求分析软件系统的数据要求(逻辑关系)导出系统的逻辑模型(数据流图)修正项目开发计划如有必要,可开发一个原型系统结构化分析方法简介(SA):自顶向下逐层分解需要:一套分层的数据流图(DFD)一本数据词典一组小说明4.软件设计概要设计:确定软件系统的结构,进行模块划分详细设计:
15、为每个模块设计实现的细节软件设计的概念和原则:抽象:过程抽象,数据抽象模块化:执行某一特定的任务信息隐蔽:将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少地显露某内部的处理。模块独立:度量标准为耦合和内聚(高耦合,低内聚)模块分解时应遵循的准则:模块大小适中(50-100 个语句),模块调用深度不宜过大(扇入大扇出小,即复用程度高,复杂度低)详细设计过程:结构化程序设计(SP):单入口单出口的控制结构详细设计的图形描述工具:程序流程图,如下图详细设计的语言描述工具:PDL(Program design language)详细设计的表格描述工具:判定表,判定树5.编码程
16、序设计语言:语法、语义、语用基本成分分类对源程序的质量要求:易使用性、易维护性、可移植性编码风格(coding style):源程序中的内部文档(选择标识符的名字,注解,程序的视觉组织)数据说明语句构造输入和输出6.软件测试(详见:软件测试的艺术)工作量占软件开发的40%以上必须准备测试用例测试的步骤:单元测试(unit testing)集成测试(integration testing)确认测试(validation testing)白盒测试和黑盒测试:白盒测试有语句覆盖,判定覆盖,条件覆盖,判定条件覆盖,条件组合覆盖黑盒测试:等价类划分有效和无效边值分析出错率大错误猜测7.软件维护软件维护的
17、分类:改正性维护,适应性维护,完善性维护,预防性维护8.软件管理成本估算:开发费用=人数*每个人的代价=源代码行数*每行平均费用进度安排:Gantt 图,PERT 图9.软件质量保证ISO/IEC9126 软件质量模型第四章数据库1.数据库技术的基本概念:数据库(DB),数据库管理系统(DBMS),数据库系统(DBS)2.数据描述:数据描述,数据联系的描述3.数据模型:数据模型的定义:概念数据模型(ER)结构数据模型基本数据模型:层次模型,网状模型,关系模型用户访问数据的过程第五章多媒体1.多媒体的概念和特征媒体:存储信息的实体,传递信息的载体关键技术:数据压缩技术,超大规模集成电路制造技术(
18、DSP),CD-ROM 系统构成声卡和显卡2.图像和图形基本概念:亮度:光强色调:色彩的倾向性饱和度:颜色的鲜艳程度三基色:RGB(红,绿,蓝)RGB 彩色空间-YUV 彩色空间(一个亮度,两个色差)图形,图像的格式:位图(bitmap):描绘类,矢量类或面向对象的图形。主要指标有:分辨率,色彩数,灰度3.声音(音频)基本概念:数字音频,音频编码与标准语言合成与语音合成第六章网络基础知识1.网络发展简史发展了 4 代:单机运程联接计算机-计算机网络(ARPANET)开放式标准化的网络(TCPIP,ISO)宽带综合业务数字化网络(ATM 技术)按计算机网络的功能分以下几个典型的计算机网络应用系统
19、:联机事务处理系统OLTP 管理信息系统MIS 办公自动化系统OA 决策支持系统DSS 信息检索系统IRS 分布式控制系统DCS 业务数据处理系统DPS 计算机集成制造系统CIMS 电子数据交换EDI 信息服务系统2.计算机网络的分类:局域网 LAN 广播式的IEEE802 城域网 MAN 广域网 WAN 互联网 Internet TCPIP RFC793/791 3.网络协议与标准ISO/OSI 标准TCPIP 协议组标准模型:4.网络采用的主要传输媒体双绞线同轴电缆光纤5.LAN 的协议标准和主要的媒体访问控制方式数据链路层分为两个子层:MAC(媒体访问控制子层)LLC(逻辑链路子层)方式
20、:(1)以太网(Ethernet)CSMA/CD 总线网广播方式,冲突检测CD(2)令牌环网按环上次序传输令牌和帧信息6.构建 WAN 网络通信服务和网络接入技术两类重要的网络互联设备:路由器(网络层互联):路由选择功能和流量控制能力网关(应用层互联)7.IP 地址和域名IP 地址 4 字节,32 位8.客户机/服务器模型(C/S)特点:调动Server 与 Client 两方面处理能力减少网络信息流通量服务器软硬件好,管理数据库安全方便客户端处理用户界面和本地I/O 3 层 C/S 模型:客户端用户界面软件服务器端业务逻辑软件数据库服务器软件C 语言概述:第一章概述1.算法:素数1.1 埃拉
21、托色尼筛法:是从自然数找出质数的方法,说简单些,就是依次写出2,3,4,5,,,N,留下第一个数2,之后每隔两个数划去一个数(也就是筛去2 的倍数):剩下 2 以后的第一个没有被筛去的质数是3,把 3 留下,划去以后的3 的倍数:剩下3 以后的第一个没有被筛去的质数是5,留下 5,再把 5 以后的 5 的倍数的数划去。如此一直做下去,一直到小于等于 N 的开方的质数都筛去得到的就是小于等于N 的质数。1.2 判断一个数是否为素数?如:n,则判断 n 能否被 2 到 n1/2 的整数整除。第二章数据类型,运算符与表达式2.常量与变量2.1 常量和符号常量#define PRICE 30/避免常量
22、值变动2.2 变量变量名是一个地址,通过查找地址读取数据。标识符(变量名,函数名,)只能用字母、数字和下划线表示。第一个字符必须为字母或下划线。变量名建议不超过8 个字符。2.3 整型数据C 整常数三种:十进制123 八进制O123 十六进制Ox123 整型变量(int)注意:在16 位机器上占16 位(2 字节)在 32 位机器上占32 位(4 字节)分为有符号数(int)、无符号数(unsigned)、有符号短(short)、无符号短(unsigned short)、有符号长(long)、无符号长(unsigned long)溢出:超过实际长度,达到最大值后,从最小值开始计数表示方法:在整
23、常量后加u 或 U,认为是unsigned int 型在整常量后加l 或 L,认为是long int 型2.4 实型数据(浮点数)单精度 float 32 位,4 字节双精度double 64 位,8 字节长双精度long double 64 位或 80 位,10 字节注意:对于一个单精度数,只能保证7 位有效数字(十进制),因为一般尾数为24 位(8388608)表示小数部分,8 位表示(阶码)指数部分。如:a=111111.111实际为 111111.1 2.5 字符型数据(char)常量:?a?单引号特殊字符,n?换行,r?回车转义字符,101?代表 ASC码?A?注意:(1)char
24、1 字节,8 位,有效分为(0255)(2)在内存中以ASC码表示(3)是整型(int)的子集,即可以用%c输出字符,也可以用%d输出整数(ASC 码,如?A?为 65)(4)也可以参加运算,如下代码:For(char ch=?A?;ch.:+Grouping operator Array access 数组Member access from a pointer 成员指针Member access from an object 成员对象(a+b)/4;array4=2;ptr-age=34;obj.age=34;Class:age=2;for(i=0;i 0;i-).2 单目运算符!+-+*
25、&(type)sizeof Logical negation 非Bitwise complement 位取反Pre-increment 前自增Pre-decrement 前自减Unary minus 减号Unary plus 加号Dereference 指针内容Address of 指针地址Cast to a given type 类型转换Return size in bytes 字节数if(!done).flags=flags;for(i=0;i 0;-i).int i=-1;int i=+1;data=*ptr;address=&obj;int i=(int)floatNum;int si
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 笔记 程序员
限制150内