大学计算机基础 山东大学计算机学院 张鹏 algzhang@sdu.edu.cn http://202.194.28.11/ 高等学校计算机公共教学改革与实践 大学计算机基础 山东大学计算机学院 张鹏 algzhang@sdu.edu.cn http://202.194.28.11/
目 录 第一章 计算机基础知识 1.1 计算机的产生与发展 1.2 二进制与数据的编码 1.3 计算机的硬件系统 1.4 计算机软件系统 目 录 第一章 计算机基础知识 1.1 计算机的产生与发展 1.2 二进制与数据的编码 1.3 计算机的硬件系统 1.4 计算机软件系统 1.5 数据存储 1.6 计算机与信息的安全
1.1 计算机的产生与发展 一、计算机的诞生 图灵机(Turing Machine)——理论上证明了通用计算机的存在。是现在使用的所有计算机的理论模型。 Von Neumann体系结构——计算机硬件分为五大组成部分:运算器、控制器、存储器、输入装置和输出装置。提出存储程序思想(通用图灵机思想)。
1.1 计算机的产生与发展 二、计算机的发展 四代计算机: 第一代计算机——电子管计算机。 第二代计算机——晶体管计算机。 1.1 计算机的产生与发展 二、计算机的发展 四代计算机: 第一代计算机——电子管计算机。 第二代计算机——晶体管计算机。 第三代计算机——集成电路计算机。 第四代计算机——(超)大规模集成电路计算机。 当今计算机的发展方向: 巨型化、微型化、网络化、智能化。
ENIAC
IBM 蓝色基因-L
天河一号
天河一号的部分构件
1.1 计算机的产生与发展 三、新概念计算机 神经计算机 超导计算机 光子计算机 生物计算机 量子计算机
第一章 计算机基础知识 1.1 计算机的产生与发展 1.2 二进制与数据的编码 1.3 微型计算机的组成和基本原理 1.4 计算机软件系统 1.1 计算机的产生与发展 1.2 二进制与数据的编码 1.3 微型计算机的组成和基本原理 1.4 计算机软件系统 1.5 数据存储 1.6 计算机与信息的安全
1.2 二进制与数据的编码 一、数的进制与转换 二、原码、反码与补码 三、数的定点表示和浮点表示 四、数据的存储单位 五、字符编码
1.数的进制 1.数制的概念 2、基本特点 数制的基数确定了所采用的进位计数制。 逢N进一。 数制(Numbering system)即表示数值的方法,有非进位数制和进位数制两种。表示数值的数码与它在数中的位置无关的数制称为非进位数制。 按进位的原则进行计数的数制称为进位数制,简称“进制”。 2、基本特点 数制的基数确定了所采用的进位计数制。 表示一个数字时所用的数字符号的个数称为基数(Radix)。如十进制数 制的基数为10;二进制的基数为2。 逢N进一。 如十进制中逢10进1;八进制中逢8进1;二进制中逢2进1;十六进制中逢16进1。(见表1.1)
位权表示法 如任何一个r进制具有有限位小数的正数,都可以表示为: 其中: 对于数字的n+1位整数部分,可以用以下的数学式子描述: 对于数字的m位的小数部分,可以用以下的数学式子描述:
整数0~15的四种常用进制表示 十进制 二进制 八进制 十六进制 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001 1010 12 A 1011 13 B 1100 14 C 1101 15 D 1110 16 E 1111 17 F
1.数的进制(续) 在输入输出数据时,可以用数据后加一个特定的字母来表示它所采用的进制:字母D表示数据为十进制(也可以省略);字母B表示数据为二进制;字母O表示数据为八进制;字母H表示数据为十六进制。 举例: 567.17D(十进制的567.17) 110.11(十进制的110.11,省略了字母D) 110.11B(二进制的110.11) 245O(八进制的245) 234.5BH(十六进制的234.5B) 234.5B(错误的数据表示方法)。
2.不同进制数之间的转换 二进制数转换为十进制数 十进制数转换为二进制数 二进制转换为八进制、十六进制
二进制数转换为十进制数 根据公式(1-1)、(1-2)、(1-3),对于一个二进制数,如果希望求出它对应的十进制数,可以写出该数的位权展开式,从而很容易地算出它所对应的十进制数。 举例: 11010101B = 1×20 + 0×21 + 1×22 + 0×23 + 1×24 + 0×25 + 1×26 + 1×27 = 213D 0.1101B = 1×2-1 + 1×2-2 + 0×2-3 + 1×2-4 = 0.5 + 0.25 + 0.0625 = 0.8125D
十进制整数转换为二进制整数 对公式(1-2)稍作分析知,整数部分的转换可采用“除基数取余法”,即用基数2多次去除被转换的十进制数,记下余数的值,直到商为0。将每次所得到的余数按逆序排列,就是转换后的二进制数。 【例1.1】 158D=?B 得:(158)10=(10011110)2
十进制小数转换为二进制小数 得:(0.8125)10=(0.1101)2 分析公式(1-3),小数部分的转换可采用“乘基数取整法”,即用基数2多次乘十进制的小数部分,每次相乘后取整数部分按正序排列,就是所对应的二进制数。 。 例 0.8125D=?B 得:(0.8125)10=(0.1101)2
二进制转换为八进制、十六进制 1个八进制位等于3个二进制位,1个十六进制位等于4个二进制位。因此,实现二进制数与八进制数、二进制数与十六进制数之间的转换比较容易。 【例1.2】 1101001111001.11011B= ? O = ?H 得:1101001111001.11011B= 15171.66O 得:1101001111001.11011B= 1A79.D8H
1.2 二进制与数据的编码 一、数的进制与转换 二、原码、反码与补码 三、数的定点表示和浮点表示 四、数据的存储单位 五、字符编码
二、原码、反码与补码 1.原码 2.反码 3、补码
1.原码 原码是机器数的一种简单的表示法。其符号用0表示正号,用1表示负号。 举例: 二进制数X1= +1010101 和X2= -1010101 其原码记作: [X1]原 = [+1010101]原 = 01010101 [X2]原 = [ -1010101]原 = 11010101。 原码机器数的表示范围因字长而定,采用8位二进制原码表示时,其真值的表示范围为:[-127, 127],即二进制的取值范围为:[11111111,01111111]。 注意:对数字0的表示有二种原码形式:00000000和10000000。
1. 原码 原码不能直接进行加法运算。即,一般地, 没有[x]原 + [y]原 = [x+y]原。 反例1:[6]原 = 00000110,[-6]原 = 10000110。 [6]原 + [-6]原 = 10001100,不是[0]原。 反例2:[6]原 = 00000110,[-3]原 = 10000011。 [6]原 + [-3]原 = 10001001,不是[3]原。
2.反码 若整数x >= 0,则[x]反=x; 若x <= 0,则[x]反=2n-1+x,即符号位为1,数值位为|x|各位取反。 数x的反码可以由原码得到:若x >= 0,则[x]反=[x]原; 若x <= 0,则[x]反=[x]原符号位不变,数值位各位取反。 举例: 二进制数X1= +1010101 和X2= -1010101 其反码记作: [X1]反=[ [+1010101]原 ]反 = [ 01010101 ]反 = 01010101 [X2]反=[ [ -1010101]原 ]反 = [ 11010101 ]反 = 10101010
2. 反码 反码不能直接进行加法运算。即,一般地, 没有[x]反+ [y]反= [x+y]反。 反例:[6]反= 00000110,[-3]反= 11111100。 [6]反 + [-3]反 = (1)00000110,不是[3]反。 但在反码体制中, [x]反+ [-x]反= [-0]反。 例:[6]反= 00000110,[-6]反= 111111001。 [6]反+ [-6]反 = 11111111,等于[-0]反。
3.补码 若整数x >= 0,则[x]补 = x; 若x < 0,则[x]补 = 2n+x,即|x|(其符号位为0)各位取反,末位加1。 由于补码编码是模2n的,故上式可统一成:[x]补 = 2n+x (mod 2n)。 x的补码可以由反码得到。如果x是正数,则该[x]补 = [x]反; 如果x是负数,则[x]补 = [x]反末位上加1。 机器数的补码表示范围因字长而定,采用8位二进制补码表示时,其真值的表示范围为:[-128, 127]。 对于数字0的补码表示只有一种形式:00000000。
举例 二进制数X1= +1010101 和X2= -1010101, 其补码记作:
补码的加减法 公式: [x]补 + [y]补 = 2n + x + 2n + y (mod 2n) = 2n + (x+y) (mod 2n) = [x+y]补 结论: 由于[x]补 + [y]补,所得结果即为[x+y]补,这表明补码可以(像数一样)进行模2n加法运算。。 补码的优点在于,补码可以像“数”一样参与加减运算。
求补数的补码 在整数中,x与–x互为补数,因为x + (–x) = 0。 [x]补 + [–x]补 = 2n + x + 2n + (-x) (mod 2n) = 2n + 2n (mod 2n) = 0 因此,[–x]补 = 0 – [x]补 = 2n – [x]补 (mod 2n)。这表明,已知[x]补,求其补数–x的补码[–x]补,只需要将[x]补各位取反,末位加1就可以了。 补码体制下,[x]补与[-x]补(在模2n加下)也“互补”,这正是“补码”名称的由来。
补码运算例 附:由补码求真值。 若[x]补最高位为0,则x = [x]补。 【例1.3】 已知 X1= +1010101 和X2= +0011101,通过其补码表示法计算X1 - X2的值。 解:X1 - X2 = X1 + (- X2 ) [X1]补 = 01010101 [-X2]补= [-x2]反 + 1 = 11100010+1 = 11100011 [X1-X2]补 = [X1]补 + [-X2]补 = 01010101+11100011 = 00111000(超出字长的进位丢弃) 知:X1 - X2 = 00111000 附:由补码求真值。 若[x]补最高位为0,则x = [x]补。 若[x]补最高位为1,则x为负数,其数值位= 2n – [x]补,即[x]补各位取反,末位加1。
二、原码、反码与补码 编码 原码对应的十进制真值 补码对应的十进制真值 0000 0001 1 0010 2 0011 3 0100 4 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 -0 -8 1001 -1 -7 1010 -2 -6 1011 -3 -5 1100 -4 1101 1110 1111
补码的模2n运算 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 -8 4 -4 1 2 3 5 6 7 -7 -6 -5 -3 -2 -1
1.2 二进制与数据的编码 一、数的进制与转换 二、原码、反码与补码 三、数的定点表示和浮点表示 四、数据的存储单位 五、字符编码
1.定点数 数的定点表示是指数据字中小数点的位置固定不变。 一般用来表示一个纯小数(不含整数位的数或者整数)。 当表示一个纯小数时,小数点固定在符号位之后。 当表示一个整数时,小数点固定在数据字最后一位之后。 例:字长为16时,数据“ ”和“+32767”表示,如图1. 1所示。 图1. 1 16位字长数据字的定点表示 数的定点表示其数值的取值范围有限,为了扩大数的表示范围,也可以通过编程技术,采用多个字节表示一个定点数。
2.浮点数 图1. 2 32位浮点数的结构 数的浮点表示法是指表示一个数时,其小数点的位置是浮动的。 在数的浮点表示中,一个数由两部分组成:其一是阶码部分(表示数的指数记数法中的指数,记为E);其二是尾数部分(相当于指数记数法中的尾数,记为M),因此对于一个数N,通过浮点表示法可以表示(注意:E和M中都包含有各自的符号位)为:N = M 2E 尾数M的小数点位置位于尾数部分的数符位之后。M为一纯小数,并且最高位从数据中第一个非零数位开始;阶码E为一整数。 例:数据“0.00000111011”的M值为“0.111011”;阶码N为“-101”,如图1. 2所示。 图1. 2 32位浮点数的结构
1.2 二进制与数据的编码 一、数的进制与转换 二、原码、反码与补码 三、数的定点表示和浮点表示 四、数据的存储单位 五、字符编码
四、数据的存储单位 在计算机中,数据存储的最小单位为比特(bit),1比特为1个二进制位。 由于1比特太小,无法用来表示出数据的信息含义,所以又引入了“字节”(Byte,B;注意:这里B作为数据量大小的单位,不要和数的表示中表示为二进制数的‘B’混淆)作为数据存储的基本单位。 在计算机中规定,1个字节为8个二进制位。除字节外,还有千字节(KB)、兆字节(MB)、吉字节(GB)、太字节(TB)。 它们的换算关系是: 1 KB = 210B = 1,024 B 1 MB = 1KKB = 220B =1,048,576 B 1 GB = 1KMB = 230B=1,073,741,824B 1 TB = 1KGB = 240B
1.2 二进制与数据的编码 一、数的进制与转换 二、原码、反码与补码 三、数的定点表示和浮点表示 四、数据的存储单位 五、字符编码
1. ASCII码 在计算机中,最常用的是英文字符,它的编码为ASCII码(American national Standard Code for Information Interchange,美国信息交换标准码。 在ASCII中,用7 个二进制位表示1个字符,共可以表示128个字符,其中95个可打印或显示的字符,其他的则为不可打印或显示的字符。 在ASCII码的应用中,也经常用十进制表示。常用字符的ASCII码: 空格:32; 数字 0 ~ 9:48 ~ 57; 大写字母’A’ ~ ’Z’:65 ~ 90; 小写字母’a’ ~ ’z’:97 ~122。 一个ASCII码的长度不超过8个二进制位。因此,保存一个ASCII码只需一个字节 ASCII码只占用了一个字节中低端的7位,最高位(第8位)为0。
1 .ASCII码
2. 汉字的编码 区位码 1980年我国公布了GB2312-80国家标准,在此标准中共含有6 763个简化汉字和682个汉字符号。 汉字的机内码 保存一个汉字的区位码要占用两个字节,区号、位号各占一个字节。 区号、位号都不超过94,所以这两个字节的最高位仍然是“0”。为了避免汉字区位与ASCII码无法区分,汉字在计算机内的保存采用了机内码,也称汉字的内码。 汉字机内码 = 区位码 + A0A0H
2. 汉字的编码 汉字输入码 由于汉字具有字量大、同音字多的特点,怎样实现汉字的快速输入也是应解决的重要问题之一。为此,不少个人或团体发明了多种多样的汉字输入方法,如全拼输入法、双拼输入法、智能ABC输入法、表形码输入法、五笔字型输入法等。对于任何一种汉字输入法,都有一套对汉字的编码,我们称为汉字输入码。 汉字字形码 汉字字形码又称汉字字模,它是指一个汉字供显示器和打印机输出的字形点阵代码。要在屏幕上或打印机上输出汉字,汉字操作系统必须输出以点阵形式组成的汉字字形码。
山东大学计算机科学与技术学院基础技术教学部 网址:http://202.194.28.11/ 谢谢大家 山东大学计算机科学与技术学院基础技术教学部 网址:http://202.194.28.11/