您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 软考教材分享:程序员考试考点突破、案例分析、实战练习一本通
程序员程序员考试考点突破、案例分析、实战练习一本通第1章计算机硬件基础知识根据考试大纲,本章要求考生掌握以下几个方面的知识点。(1)计算机的类型和特点:微机(PC机)、工作站、服务器、主机、大型和巨型计算机、并行机。(2)中央处理器CPU:CPU的组成、常用的寄存器、指令系统与寻址方式、指令执行控制、中断控制、处理机性能。(3)主存和辅存:存储介质、高速缓存(Cache)、主存、辅存设备。(4)I/O接口、I/O设备和通信设备:I/O接口、I/O设备、通信设备(类型、特性)、I/O设备和通信设备的连接方法及连接介质类型。1.1考点突破从历年的考试情况来看,本章的考点主要集中在以下方面。计算机系统的组成:计算机硬件的组成;计算机软件的分类。数据的表示:数据的表示(原码、补码、反码),数制的转换;浮点数的表示与运算;数据的算术运算和逻辑运算;溢出;校验方法;汉字编码及点阵容量的计算。中央处理器CPU:CPU的组成、工作原理和性能指标,程序计数器PC;指令系统(RISC、CISC)与寻址方式;指令流水线;中断控制。主存和辅存:存储器性能指标(存储速度、存储容量);存储器的分类;内存的特点、功能和分类;外存的特点、功能和分类;Cache.程序员接口、I/O设备和通信设备:I/O接口的概念、I/O设备(类型、特性);总线的概念与分类;I/O接口、设备、总线的链接方式和链接介质类型;主板的组织结构;输入输出方式比较。1.1.1历年考试情况分析在历年的考试试题中,有关计算机硬件基础知识的试题如表1-1所示。表1-1计算机硬件基础知识试题分布表程序员按照计算机硬件基础知识点进行总结和归类的试题分布情况如表1-2所示。表1-2计算机硬件基础知识点归类表从表1-2中可以看出,计算机硬件基础知识的内容在历年的考试中最高占11分,最低程序员占8分,平均占9.9分。数据结构与算法方面的内容在历年考试真题中所占分数比例的趋势如图1-1所示。从图1-1中可以看出,计算机硬件基础知识方面的试题分值趋于平缓上升态势。图1-1计算机硬件基础知识历年试题比例趋势图1.1.2计算机系统的组成计算机系统是由硬件系统和软件系统组成的。计算机硬件是计算机系统中看得见、摸得着的物理装置,计算机软件是程序、数据和相关文档的集合。1.计算机系统的硬件计算机硬件系统由运算器、控制器、存储器、输入设备和输出设备五大部件组成。运算器是对数据进行加工处理的部件,主要完成算术和逻辑运算。控制器的主要功能是从主存中取出指令并进行分析,控制计算机的各个部件有有条不紊地完成指令的功能。运算器、控制器统称为中央处理单元CPU.CPU是硬件系统的核心。存储器是计算机系统的记忆设备,分为内部存储器(简称内存或主存)和外部存储器(简称外存)。寄存器是CPU中的记忆设备。程序员习惯上将CPU和主存的有机组合称为主机。输入/输出(或I/O)设备位于主机之外,是计算机系统与外界交换信息的装置。输入设备的作用是把信息转换成二进制形式输入到计算机的存储器中,输出设备的作用是把运算处理结果按照人们所要求的形式输出到外部存储介质上。输入和输出是相对于主机而言的。2.计算机软件计算机软件是为管理、运行、维护及应用计算机所开发的程序和相关文档的集合。通常分为系统软件和应用软件两大类。软件系统是计算机系统中的重要组成部分,没有软件系统的计算机我们称之为裸机。1.1.3计算机中数据的表示与运算计算机最主要的功能是处理数值、文字、声音、图形和图像等信息,这些信息需经过数字化编码后才能被计算机接受、存储和处理。1.进位记数制及其转换进位计数制是利用固定的数字符号和统一的规则来计数的方法。若一种进位计数制只用r个基本符号表示数值,则称其为r进制,基本符号称为数符,r称为该数制的基数,该进制的计数规则为:逢r进一。例如我们常用的十进制中的0、1、2、3、4、5、6、7、8、9就是数符,总共有10个,10就是该进制的基数,计数规则为:逢十进一。进位记数制中的数码的不同排列构成不同的数值,数码所在的一个数中所处的位置称为数位。数符在不同位置上的数值,我们用权来表示。权是基数的某次幂。如十进制数1234.678我们可以表示为:1234.678=1×103+2×102+3×101+4×100+6×10-1+7×10-2+8×10-310i即为十进制的权,十进制数1234.678中的数码3在权值为101的数位上,数码程序员在权值为10-2的数位上。计算机中常用的几种进位记数制如下表1-3所示。表1-3计算机中常用的进位数值的表示(1)r进制数转换十进制数r进制转换十进制数的方法通常采用按权展开法,即:将r进制的每一位数乘以其数位上的权,然后相加,即可求得对应的十进制数值。例如,二进制数l0101.11的值可计算如下:(10101.11)2=(1×24+1×22+1×20+1×2-1+1×2-2)10=(21.75)10或10101.11B=(1×24+1×22+1×20+1×2-1+1×2-2)D=21.75D按照上面的方法,即可计算八进制数、十六进制数转换成十进制数。(2)十进制数转换r进制数十进制数转换r进制数整数部分采用除r取余法,小数部分采用乘r取整法.以十进制数115.375转换二进制数为例:程序员将整数部分所得的余数从低位到高位排列得到(1110011),小数部分从高位到低位排列得到(011),则115.375D=1110011.011B.(3)二进制数与八进制数、十六进制数之间的转换二进制数转换成八进制数,只要将整数部分由低位至高位、小数部分从高位到低位每三位二进制数转换成一位八进制数即可,整数部分不足三位在高位补0,低位不足三位在低位补0.二进制数转换成十六进制数,只要将整数部分由低位至高位、小数部分从高位到低位每四位二进制数转换成一位八进制数即可,整数部分不足四位在高位补0,小数部分不足四位在低位补0.例如:将二进制数1110011.011转换成八进制数和十六进制数:001110011.011B=163.3O01110011.0110B=73.6H八进制数和十六进制数转换可先转换为二进制数,然后再转换为目标进制。表1-4给出了二进制、八进制、十进制、十六进制数之间的对应关系。表1-4二、八、十、十六进制数之间的对应关系2.机器数与原码、反码、补码、移码各种数据在计算机中表示的形式称为机器数,采用二进制记数制,数的符号用0、1表示,小数点隐含表示而不占位置。机器数对应的实际数值称为数的真值。程序员机器数有无符号数和带符号数之分。无符号数表示正数,在机器数中无符号位。带符号数,机器数的最高位为符号位,0表示正数,1表示负数。常用的编码方法有原码、反码、补码,机器数的这些编码方法称为码制。正数的原码、反码、补码相同,负数的原码、反码、补码则不同。(1)原码若机器字长为n(即采用n个二进制位表示数据),则最高位为符号位,0表示正号,1表示负号,其余n-1位表示数值的绝对值。例如:【+0】原=00000000【-0】原=10000000【+1】原=00000001【-1】原=10000001【+35】原=00100011【-35】原=10100011但是直接使用原码在计算时却会有麻烦,比如(1)10+(-1)10=0,如果直接使用原码则:(00000001)2+(10000001)2=(10000010)2这样计算的结果是-2,也就是说,使用原码直接参与计算可能会出现错误的结果。所以,原码的符号位不能直接参与计算,必须和其他位分开,这样会增加硬件的开销和复杂性。(2)反码正数的反码与原码相同,负数的反码是在其原码的基础上,符号位不变,数值位按位取反。例如:【+0】反=00000000【-0】反=11111111程序员【+1】反=00000001【-1】反=11111110【+35】反=00100011【-35】反=11011100同样对上面的加法,使用反码的结果是:(00000001)2+(11111110)2=(11111111)2这样的结果是负0,而在人们普遍的观念中,0是不分正负的。反码的符号位可以直接参与计算,而且减法也可以转换为加法计算。(3)补码正数的补码与原码和反码相同,负数的补码等于其反码加1.例如:【+0】补=00000000【-0】补=00000000【+1】补=00000001【-1】补=11111111【+35】补=00100011【-35】补=11011101再次做加法是这样的:(00000001)2+(11111111)2=(00000000)2直接使用补码进行计算的结果是正确的。注意到我们这里只是举例,并非证明。对一个补码表示的数,要计算其原码,只要对它再次求补,可得该数的原码。由于补码能使符号位与有效值部分一起参加运算,从而简化运算规则,同时它也使减法运算转换为加法运算,进一步简化计算机中运算器的电路,这使得在大部分计算机系统中,数据都使用补码表示。补码加减运算的规则是:参加运算的操作数用补码表示;程序员符号位参加运算;若进行相加,则两个数的补码直接相加;若进行相减运算,则将减数联通符号位一起变反加1后与被减数相加;运算结果用补码表示。(4)移码移码(又叫增码)是符号位取反的补码,常用于浮点数中的阶码的表示,引入的目的是为了保证浮点数的机器零为全0.一个数的移码是将真值加上2n.由1位符号位和n位数值位组成的阶码,即[X]移=2n+X,而X的范围是-2n≤X≤2n.例如,X=+1011[X]移=24+1011=11011符号位1表示正号X=-1011[X]移=24+10101=00101符号位0表示负号移码与补码的关系:[X]移与[X]补的关系是符号位互为相反数(仅符号位不同)。例如,X=+1011[X]移=11011[X]补=01011X=-1011[X]移=00101[X]补=10101移码的特点在于把可以表示的最小值转换成了1.这个特点将会用在浮点数的指数表示中。3.定点数与浮点数在机器中,数有两种表示方法:定点表示法和浮点表示法。(1)定点表示法定点表示法就是小数点的位置固定不变。通常小数点的位置有两种约定方式:定点整数和定点小数。定点整数即小数点的位置固定在最低有效数值位之后--纯整数;定点小数即小程序员数点固定在最高有效数值位之前--纯小数。(2)浮点表示法由于定点表示法限于机器字长而能表示的数值范围较小,运算中很容易因结果超出范围而溢出,因此引入浮点表示法。浮点表示法即小数点位置不固定。与十进制中的科学记数法一样,对任意一个二进制数,均可表示为:N=2E×M其中E称为阶码,M称为尾数。用阶码和尾数表示的数叫做浮点数,这种表示数的方法称为浮点表示法。一个数的浮点表示形式不是唯一的,当小数点的位置改变时,阶码也随着相应改变。浮点表示法中,阶码E通常为带符号的纯整数,尾数M为带符号的纯小数。浮点数的表示格式如下:浮点数表示的精度取决于尾数的宽度,范围取决于基数的大小和指数的宽度。浮点
本文标题:软考教材分享:程序员考试考点突破、案例分析、实战练习一本通
链接地址:https://www.777doc.com/doc-6016114 .html