null大学计算机基础第二章 计算机基础知识大学计算机基础第二章 计算机基础知识第二章 计算机基础知识 主要内容
2.1 计算机系统组成
2.2 计算机中数据的表示与存储
2.1 计算机系统的组成2.1 计算机系统的组成计算机系统=硬件系统+软件系统系统软件
应用软件硬 件由电子线路和机电设备组成的设备实体。为运行、维护管理、应用计算机所编制的计算机程序。软 件null硬 件计算机系统层次结构作为一个完整的计算机系统,硬件和软件是按一定的层次关系组织起来的。
操作系统向下控制硬件、向上支持软件,所有的其他软件都必须在操作系统的支持下运行。对计算机的操作转化为对操作系统的使用。为软件开发、扩充和使用提供了条件。计算机系统的组成 计算机系统的组成 null人是如何处理事务的呢?接收信息完成结果计算
控制眼睛、手
记忆数据计算机也是模仿人来处理事务的2.1.1 计算机硬件系统2.1.1 计算机硬件系统 美籍匈牙利科学家冯·诺依曼于1946年首先提出现代计算机的基本工作原理。
EDVAC:冯诺依曼与莫尔小组合作,研制出了EDVAC计算机。该计算机根据冯诺依曼提出的原理制造,由此,奠定了现代计算机的体系结构,这一结构也称为冯诺依曼体系结构。主要有三个特点:
① 计算机由五个基本部分组成:运算器、控制器、存储器、输入设备和输出设备。
② 指令和数据以同等地位存储在主存储器中,并按地址访问、以顺序的方式执行。
③ 程序和数据以二进制表示。
目前绝大多数计算机都是基于冯·诺依曼计算机模型开发的。图灵机——计算机的理论模型图灵机——计算机的理论模型图灵机的思想
图灵机的模型null冯诺依曼计算机(计算机基本组成结构)计算机由五大部分组成
程序、数据存放在内存
采用二进制控制整个计算机所有部件的工作执行算术运算和逻辑运算存放程序
和数据2.1.2 计算机软件系统2.1.2 计算机软件系统系统软件应用软件软件包括计算机运行所需的各种程序、数据及其有关技术文档。不装备任何软件的计算机称为裸机。
硬件是软件赖以运行的物质基础,软件是计算机的灵魂,是发挥计算机功能的关键。软件提高了机器的效率、扩展了硬件功能,方便了用户使用。null1.系统软件
(1)操作系统
操作系统是最重要的系统软件,是计算机系统软件的核心,是对计算机硬件、软件资源进行管理、调度、控制和运行的一组程序,它也是用户与计算机之间的接口。用户通过操作系统方便、顺利地操作计算机,而不必过问计算机硬件的具体细节。
常用的操作系统有:
Windows 、Unix、Linux等。null(2)程序
语言及语言处理程序
机器语言:用二进制代码编写,机器能直接执行。
汇编语言:用符号表示指令代码,需要汇编程序将其
成机器指令后才能运行。
高级语言:采用接近自然语言的字符或表达式、按照一定的语法规则编写程序,需要高级语言编译程序将源程序编译生成目标程序后才能运行。
程序设计语言分为面向过程和面向对象两类。 null 1)面向过程语言
特点:强调用计算机能够理解的逻辑来描述解决问题的方法和步骤,不仅要说明做什么,还要说明如何做。过分强调求解过程的描述,程序难以重复使用。
如:Basic、C、FORTRAN 、COBOL、PASCAL。
null 2)面向对象语言
特点:能够直接描述客观世界的事物,将一切事物都看成具有属性和行为的对象。通过抽象找出同一类对象的共同属性和行为,并抽象成类。通过类的继承实现代码重用,编程效率高。
如:Visual Basic、C++、Java等。 任何一种高级语言或汇编语言编写的程序(称为源程序),都不能由计算机直接执行,必须通过相应的编译程序翻译成机器语言程序(称为目标程序)后才能执行,或者通过解释程序边解释边执行。不同的语言所对应的语言处理程序也是不同的。null2. 应用软件
应用软件是指除了系统软件以外的所有软件,它是用户利用计算机及其提供的系统软件为解决各种实际问题而编制的计算机程序。
-- 用于科学计算的软件包、办公自动化软件
-- 计算机辅助设计、辅助制造、辅助教学软件
-- 图形软件、工具软件
应用软件是在系统软件支持下开发的,可以分为两种:
(1)用户程序
用户程序是用户为了解决自己特定的具体问题而开发的软件,在系统软件和应用软件包的支持下开发。
(2)应用软件包
应用软件包是为实现某种特殊功能或特殊计算,经过精心设计的独立软件系统,可以满足同类应用许多用户需要的软件。 2.1.3 计算机中常用数据存储单位位 (bit ,缩写为b)
计算机中表示信息的最小单位,代码为0和1;n位二进制数能表示2n种状态。
字节 (Byte,缩写为B)
计算机中存储信息的基本单位,每个字节由8位二进制数组成。计算机是以字节来计算存储容量的。
1Byte=8bit 1KB=1024B 1MB=1024KB
1GB=1024MB 1TB=1024GB
字(Word)
计算机进行数据处理和运算的单位,即CPU在单位时间内能一次处理的二进制数据的位数。由若干字节组成,如16位、32位、64位等,其包含的二进位个数称为字长。2.1.3 计算机中常用数据存储单位null(1) 指令和程序的概念
指 令: 计算机硬件可执行的、完成某种操作的命令。
指令由操作码和操作数两部分组成,其格式如下:
2.1.4 计算机的基本工作原理操作码:指明该指令要完成操作:加、减、乘、除、传送等
操作数: 指出被操作的对象所在存储单元地址,寄存器地址
及立即数。或指出运算的结果应送到哪个单元中。
程 序:根据解决某一问题的步骤,编制的指令序列。null①数据传送指令:将数据在内存与CPU之间进行传送。
②数据处理指令:对数据进行算术、逻辑或关系运算。
如+ - × ÷ And Or等
③程序控制指令:控制程序中指令的执行顺序。如条件转移、
无条件转移、子程序调用、返回、停机等。
如 If Goto 等
④输入/输出指令:实现外部设备与主机之间的数据传输。
⑤其它指令: 对计算机硬件进行管理等。 一台计算机所有指令的集合称为该计算机的指令系统,不同种类计算机指令系统所包含的指令数目与格式也不相同。指令系统不仅是硬件设计的依据,而且是软件设计的基础。计算机的指令系统null程序的执行过程(2) 计算机的工作原理 计算机的工作过程就是执行指令的过程(三个阶段) null计算机根据程序计数器的内容,将要执行的指令从内存单元中取出,并送到CPU指定的寄存器中。CPU对取出的指令通过译码器进行
译码,判断指令要完成的操作。CPU根据指令分析结果,向各部件发出完成该操作的控制信号,相关部件进行工作,完成指令规定的动作,并为下一条指令做好准备。2.2 数据在计算机中的表示与存储思考:我们日常生活中的进制……
最常用的十进制
星期:七进制
小时:24进制,分钟:60进制,秒:60进制
月份:12进制
在计算机中采用二进制,使信息数字化容易实现,并可以用二值逻辑元件进行表示和处理。 2.2 数据在计算机中的表示与存储理 解 0 和 1理 解 0 和 1计算机中普遍采用的计数制——二进制。
物理上容易实现,适合逻辑运算,运算规律简单,可靠性好、通用性强2.2.1 数的进位计数制及其转换2.2.1 数的进位计数制及其转换1.数的进位计数制
数的进位计数制定义:
按进位的原则进行计数
逢R进1
采用位权表示法基数:若某种进位计数制中使用了R个符号(0,1,2,…,R-1),R称为该进位计数制的基数。
位权:指一个数字在某个位置上所代表的值,在不同的位置上所代表的值是不同的,每个数字的位数决定了数字位权,而各进位制中位权的值是基数的某次幂。任何一种进位计数制表示的数都可以写成按权展开的多项式之和null基数位权数码十进制基数:10
102,101,100,10-1,10-2分别是数的百位、十位、个位、十分位、百分位的权
数码:0,1,2,3,4,5,6,7,8,9r进制r进制基数:r
rn-1,rn-2,…,r0,r-1,r-2,… r-m分别是数某位的权
数码:0,1,2,…,r-1二进制二进制基数:2
2n-1,2n-2,…,20,2-1,2-2,… 2-m分别是数某位的权
数码:0,1
进位规则:
低位向高位进位规则逢二进一,小数点向右移一位,数值扩大一倍,小数点向左移一位,数值缩小一倍。
1001.1111 10011.111 100.1111八进制和十六进制(便于书写和记忆)八进制和十六进制(便于书写和记忆)2. 二进制数的运算2. 二进制数的运算 加法: 0+0=0
0+1=1
1+0=1
1+1=0 减法:
0-0=0
0-1=1(可向高位借位)
1-0=1
1-1=0二进制算数运算null 乘:0×0=0
0×1=0
1×0=0
1×1=1
除:0÷0=0
0÷1=0
1÷0=(无意义)
1÷1=1在计算机内部,二进制的加法是基本运算,乘、除可以通过加、减和移位来实现。二进制的逻辑运算二进制的逻辑运算 逻辑与:0∧0=0
0∧1=0
1∧0=0
1∧1=1 逻辑与真值表两个运算对象都成立,结果为真。 逻辑运算是指对某一给定条件,判断其是否成立的一种运算。运算结果不表示数值的大小,而是表示条件成立与否。
生活中处处体现着逻辑。举例。二进制的逻辑运算二进制的逻辑运算 逻辑或:0∨0=0
0∨1=1
1∨0=1
1∨1=1 逻辑或真值表两个运算对象有一方成立,结果为真 null 逻辑非: 0 =1
1 =0 逻辑非真值表当开关A合上,电灯两端被短路。电流从开关A流走,灯不亮。3.不同进位计数制间的转换3.不同进位计数制间的转换(1) r进制数(非十进制数)转化成十进制数
方法:数码乘以各自的权的累加。
分别写出r进制数的按权展开式,计算所得的值即 为转换后的十进制数。
其中:a-m,…a-1,a0,a1,a2,…,an-1 为系数(数码)
r为基数
n为项数null 例2: (3506.2) 8
= 3×83+5×82 +0×81 + 6 ×80 +2 × 8-1
= 1536+320+6+0.25
= (1862.25)10例1:(10101)2
=1×24+0 ×23+1 ×22+0 ×21+ 1×20
= 24 +22+1=(21)10例3:(A3E.5)16=
= 10×162+3×161+14×160+5×16-1
= 2560+48+14+0.31
= (2622.31)10(2) 十进制数转化成r进制数(2) 十进制数转化成r进制数方法:分整数和小数两部分分别处理。
整数部分:除以r取余数,直到商为0,余数从右到左排列
(除r取余,逆序排列)
小数部分:乘以r取整数,整数从左到右排列。
(乘r取整,顺序排列)null例:将(100.23)10 化为二进制。若小数保留4位结果为:(100.23)10 =(1100100.0011)2null例:将(100)10分别化为八进制和十六进制数。结论:
由十进制转换到r进制,可以把小数点作为分隔点,对于其整数部分和小数部分分别进行转换,然后再组合起来。结果为: (100)10 =(144)8=(64)16(3) 二进制、八进制、十六进制数间的相互转换(3) 二进制、八进制、十六进制数间的相互转换每3位二进制对应一位八进制数进制表示符号
B :二进制
O:八进制
D:十进制
H:十六进制null15
=8+4+2+1
=(1111)2
11
=8+0+2+1
=(1011)2
6
=0+4+2+0
=(0110)2每4位二进制对应一位十六进制数null例:将二进制数1 101 101 110.110 101转换为八进制数。
001 101 101 110.110 101(B)= 1556.65(O)
1 5 5 6 6 5
例:将二进制数11 0110 1110.1101 01转换为十六进制数。
011 0110 1110.1101 0100(B)=36E.D4(H)
3 6 E D 4 二进制转化成八(十六)进制
整数部分:小数点为基准从右向左按三(四)位进行分组
小数部分:小数点为基准从左向右按三(四)位进行分组
不足补零(4)二--十进制数(BCD码)(4)二--十进制数(BCD码)日常习惯使用十进制,为了让计算机能够识别、存储十进制数,向计算机输入数据时仍采用十进制。
计算机先将十进制按位编码,每位十进制对应4位二进制表示,计算机自动将其转换为二进制数,这种编码称为BCD编码(又称 8421码)。
主要用途帮助计算机自动实现十进制向二进制相互转换。
BCD码取10种状态表示十进制数码0~9.既具有二进制的形式,又具有十进制的特点,逢“十”进位。二--十进制数(BCD码)二--十进制数(BCD码)(75.4)D
=(0111 0101.0100)BCD
(1000 0101.0101)BCD
=( 85.5)D BCD码与二进制之间的转换不能直接进行,应先转换为十进制后再转换为二进制。2.2.2 数值数据的编码符号位 “0”表示正 、 “1”表示负2.2.2 数值数据的编码1.带符号数的机内表示 在计算机中数值型数据的正、负采用符号数字化的方法,用“0”,和“1”来表示,即指定最左边一位表示数的符号,用0代表正数,用1代表负数。
这种符号数字化了的数称为“机器数”,而把机器数对应的原来用正负符号和绝对值来表示的数值称为机器数的“真值”.◇若一个数占8位,-2C(H)表示形式为:对应的真值数为: (-010 1100)2◇机器数表示的范围受到字长的限制
若表示一个整数:
字长为8位, 最大值为01111111,即27-1=127
字长为16位,最大值为0111111111111111,即215-1=3276744-44 2. 数的原码、反码和补码表示 2. 数的原码、反码和补码表示 在计算机中对带符号的机器数常用原码、反码和补码三种方式表示。
原码 假定一个数在机器中占用8位表示数的范围: -127 ~ 127
1 111 1111 0 111 1111 整数X的原码表示是:整数的符号位用“0”表示正,“1”表示负,其数值部分是该数的绝对值的二进制表示。在原码表示中,0有两种表示方法。null原码表示法简单易懂,与其真值的转换也极为简单,在计算机中常用来实现乘除运算,但是加减运算不方便。
当两个数做加法运算时,如果两数码符号相同,则数值相加,符号不变;
如果两数值符号不同,数值部分实际上是相减,这时,必须比较两个数那个数绝对值大,才能决定谁减谁。null例:
X=+6 [X]原码=00000110
Y=-3 [Y]原码=10000011
X+Y=+6+(-3)=6-3=3
原码相加:得到-9
00000110
+10000011
10001001 …… (-9)因此,为了运算方便,计算机中引入了反码和补码的概念,将加减法运算统一转换为补码的加法运算。 原码相减:得到-3 00000110
-10000011
10000011…… -3(2)反码(2)反码 正数X的反码与原码相同,负数的反码是对该数的原码除符号位外将各位取反,0变1,1变0,数的符号位为1。在反码表示中,0有两种表示方法。(3)补码补码表示中:0的唯一表示: [+0]=[-0]=00000000
可以用多出来的编码10000000来扩展补码的表示范围,值为-128。
最高位1即可看做符号位负数,又可表示为数值。
表示数的范围: -128~127 正数X的补码与原码相同,负数的补码是其反码加1。即数的符号位为1,其数值为数的绝对值取反并在最末尾加1。(3)补码null在计算机中,加减法基本上采用补码运算,加减法运算都可以用加法实现,数的符号也可以当做数值一起参与运算。
当运算结果超出其表示范围时,会产生“溢出”(得出不正确的结果)。例1: 利用补码进行(+6)+(-3)运算。
X=+6 [X]原=00000110 [X]补=00000110
Y=-3 [Y]原=10000011 [Y]补=11111101
两数相加 00000110 ………… +6的补码
+11111101 ………… -3的补码
100000011 ………… +3的补码null例2: 计算-13+12的值。
X= -13 [X]原=10001101 [X]反=11110010
[X]补=11110011
Y=+12 [Y]原=00001100 [Y]反=00001100
[Y]补=00001100
两数相加 11110011 ………… -13的补码
+ 00001100 ………… +12的补码
11111111 ………… -1 的补码
-1: 1000 0001(原) 1111 1110 (反) 1111 1111(补)null3.定点数与浮点数 定点数是指规定小数点固定在某一位置上。定点数分为定点整数和定点小数。(1)定点数表示小数点固定在机器数的最低位之后小数点固定在符号位之后数的范围有限(2)浮点数表示(2)浮点数表示二进制数可表示为: 110.011(B)=1.10011×2+10尾数的位数决定数的精度
阶码的位数决定数的范围 浮点数是指小数点位置可以任意浮动的数。数学中称为实数。
科学记数法表示:十进制数 -12345678 可表示为:
-12345678 = -1.2345678 107
计算机中采用以2为底的科学记数法存储:
N= 数符尾数2阶码
(其中:数符0为正,1为负,尾数和阶码都用二进制数表示)IEEE 754
(美国电气电子工程师协会IEEE,1985)IEEE 754标准(美国电气电子工程师协会IEEE,1985) 将浮点数分成两类:
单精度(Float)和双精度数(Double)。
单精度数用32位表示:数符1位,阶码8位,尾数23位
双精度数用64位表示:数符1位, 阶码11位,尾数52位
为了处理负指数的情况,实际数据的指数存储时数值加上127(27-1)后进行存储。尾数只存储小数部分。
单精度浮点数机内存储格式(占4个字节,32位)
2.2.3 非数值数据的编码2.2.3 非数值数据的编码 1.字符编码(ASCII码)
(American Standard Code for Information Interchange)
128个常用字符,用7位二进制编码,最高位为0,从0到127
控制字符34个:0~32,127;
普通字符:94个。
例如:“a”字符的编码为110 0001,61H,对应的十进制数是97;
空格 20H 32
‘0’~‘9’ 30H~39H 48~57
‘A’~‘Z’ 41H~5AH 65~90
‘a’~‘z’ 61H~7AH 97~122 2.汉字编码2.汉字编码汉字在计算机也要采用二进制表示,在计算机系统中,汉字的输入,内部处理,输出编码是不相同的。拼音
五笔等GB2312-1980标准汉字字符集,规定在不同的汉字系统中进行汉字交换时使用的编码,简称国标码,两个字节。汉字在机器内部的表示形式,是内部存储,处理,传输汉字的代码,两个字节16位表示一个汉字。
为了区分西文字符的机内码,每个字节的最高位设为1.
每个汉字字形码在汉字字库中的相对位移地址
(1) 汉字输入码
(1) 汉字输入码
编码原则:编码短,击键次数少;重码少,易于实现盲打;易于记忆
① 数字编码:
用4位数字代表一个汉字,如国标区位码、电报码等。
GB2312标准将6763个汉字和700多个符号分成94个区,每个区存放94个汉字和符号。无重码,但是记忆困难。
如:中 5448 华 2710 十进制
② 拼音编码:
以汉语拼音为基础的输入法,常用有智能ABC、微软拼音、紫光、全拼、搜狗等。(简单易学,重码,拼音为基础)
③ 字形编码:
以汉字的形状确定的编码,如五笔字型、表形输入法。(无重码,快,专业人员)null(2) 汉字国标码(GB2312-80)——汉字交换码
GB2312-80标准汉字字符集,规定在不同的汉字系统中进行汉字交换时使用的编码,简称国标码。
每个汉字用两个字节表示。
汉字分区,每个区94个汉字,每个区94个位。
以16进制表示。
null区位码转换为国标码的方法:
(1)区位码分成区号和位号,先分别转换成十六进制数表示
(2)(区位码的十六进制表示)+2020H=国标码;
以汉字“大”为例,“大”字的区位码为2083
区号为20,位号为83
将区位号2083转换为十六进制表示为14 53H
1453H+2020H=3473H,得到国标码3473Hnull(3)机内码:
为区别ASCII码,将汉字国标码的每个字节的最高位设为1,形成了在计算机内部用来进行汉字存储、运算的编码。
以汉字“大”为例,“大”字的区位码为2083,国标码为34 73H,
二进制: 0011 0100 0111 0011 国标码
二进制: 1011 0100 1111 0011 机内码
B 4 F 3
34 73H+80 80H=B4 F3H,得到机内码为B4F3H
国标码转换为机内码:
国标码+8080H=机内码将汉字的各种输入码在计算机内部统一起来,汉字输入码在机器内部转化为机内码。null 汉字 区位码 国标码 汉字内码
中 5448 8680(01010110 01010000)B (11010110 11010000)B
华 2710 5942(00111011 00101010)B (10111011 10101010)B 计算机处理字符数据时,当遇到最高位为1的字节,便将该字节连同其后续最高位为1的另一个字节看做一个汉字;当遇到最高位为0时,则可看做一个ASCII码西文字符,这样就实现了汉字、西文字符的共存和区分。(4)汉字字形编码(4)汉字字形编码点阵:用点阵表示的码,是汉字的输出形式。它把汉字排成点阵。常用16×16、24×24、32×32、48×48或更高二进制位来存储。
一个16*16点阵的汉字字形占用32个字节,24*24要占用72个字节。
编码、存储方式简单、无需转换直接输出
放大后产生的效果差。
这类点阵字库汉字最大的缺点是不能放大,一旦放大后就会发现文字边缘的锯齿。null矢量:存储的是描述汉字字形的轮廓特征。矢量方式与点阵相反
矢量图是用一系列计算指令来表示的图,因此矢量图是用数学方法描述的图,本质上是很多个数学表达式的编程语言表达。画矢量图的时候如果速度比较慢,可以看到绘图的过程。
矢量字库保存的是对每一个汉字的描述信息,比如一个笔划的起始、终止坐标,半径、弧度等等。
在显示、打印这一类字库时,要经过一系列的数学运算才能输出结果。这一类字库保存的汉字理论上可以被无限地放大,笔划轮廓仍然能保持圆滑,打印时使用的字库均为此类字库。
Windows使用的字库也为以上两类,在FONTS
下,如果字体扩展名为FON,表示该文件为点阵字库,扩展名为TTF则表示矢量字库。 键盘输入与屏幕显示键盘输入与屏幕显示0本章小结本章小结 本章主要介绍了计算机系统的组成,计算机的基本工作原理、计算机中数据的表示与存储。
学习的重点是理解和掌握计算机系统结构最本质的特征、计算机工作的基本原理,掌握各种数制的转换,了解计算机中数据的存储。思 考 题思 考 题1.计算机由哪几个部分组成?
2.冯诺依曼计算机体系结构的核心是什么?
3.指令和程序有什么区别?
4.带符号的数在计算机中是如何运算的?
5. 浮点数在计算机中是如何表示的?
6. “D”、“d”、“3”和空格的ASCII码值?
7.矢量图字库与点阵字库的区别?