第2章 计算基础(4课时)
2.1数制
2.1.1掌握数制的概念
1.数制的定义
按进位的原则进行计数称为进位计数制,简称“数制”(Number System)。数制又称记
数法,是人们用一组统一规定的符号和规则来表示数的方法。在日常生活中,除人们最习惯使用的十进制外,还存在着多种数制。例如,计时采用六十进制,即60秒为1分种,60分种为1小时;再如星期采用七进制,年采用十二进制等等。
2.数制的规律
无论使用何种数制,它们都包括基数和位权两个要素,其计数和运算都有共同的规律和特点。
(1)逢N进一
N是指数制中所需要的数字字符(数码)的个数,称为基数。如十进制的数码有0~9共10个数码,因此,十进制的基数为10,表示逢十进一。
(2)位权表示法
位权是指一个数字在某个固定位置上所代表的值,简称权。实际上,每个数码所表示的数字等于该数码乘以一个与数码所在位置相关的常数,这个常数就是位权。位权的大小是以
基数为底、数码所在位置的序号为指数的整数次幂。因此,用任何一种数制表示的数都可以写成按位权展开的多项式之和。
例如,十进制数“2008.5”可以用如下形式表示:
(2008.5)10=2×103+0×102+0×101+8×100+5×10-1
3.常用的数制
人们在解决实际问题中习惯使用十进制数,而计算机内部采用二进制数。二进制数与八
进制数、十六进制数有倍数关系,如23等于8、24等于16,所以在计算机应用中常常根据需要使用八进制数或十六进制数。
(1)十进制数
按“逢十进一”的原则进行计数,称为十进制数,即每位计到10时,本位为0,高1位加1,即向高位进1。对于任意一个十进制数,可用小数点把数分成整数部分和小数部分。
在十进制数的表示中,每个数字都要乘以基数10的幂次(由该数字所在的位置决定)。
例如,十进制数“123.45”可用如下形式表示:
(123.45)10=1×102+2×101+3×100+4×10-1+5×10-2
十进制数的性质是:小数点向右移一位,数就扩大10倍;反之,小数点向左移一位,
数就缩小10倍。
(2)二进制数
按“逢二进一”的原则进行计数,称为二进制数,即每位计满到2时向高位进1。
在二进制数的表示中,每个数字都要乘以基数2的幂次。
例如,二进制数“1001.101”可用如下形式表示:
(1001.101)2=1×23+0×22+0×21+1×20+1×2-1+0×2-2+1×2-3
(3)八进制数
按“逢八进一”的原则进行计数,称为八进制数,即每位计满到8时向高位进1。
在八进制数的表示中,每个数字都要乘以基数8的幂次。
例如,八进制数“716”可用如下形式表示:
(716)8=7×82+1×81+6×80
(4)十六进制数
按“逢十六进一”的原则进行计数,称为十六进制数。即十六进制数有数字字符:0、1、
2、3、4、5、6、7、8、9、A、B、C、D、E、F。
例如,十六进制数“EA4”可用如下形式表示:
(EA4)16=14×162+10×161+4×160
2.1.2二进制数
1.采用二进制数的好处
(1)可行性
(2)可靠性
(3)简易性
(4)逻辑性
2.二进制算术运算
(1)二进制求和法则
0+0=0
0+1=1
1+0=1
1+1=10
(2)二进制求差法则
0-0=0
0-1=1(借一当一)
1-0=1
1-1=0
(3)二进制求积法则
0*0=0
0*1=0
1*0=0
1*1=1
(4)二进制求商法则
0÷0=0
0÷1=1
1÷0(无意义)
例2-1:求11001101+10011=?
解:11001101
+)10011
11100000
结果:11001101+10011=11100000。
3.二进制逻辑运算
逻辑是指“条件”与“结论”之间的关系;逻辑运算是针对“因果关系”进行分析的一种运算;逻辑运算结果不表示数值的大小,而是条件成立还是不成立,也称逻辑量。计算机中都是用二进制的“0”和“1”表示“是”与“否”等逻辑量。逻辑运算按位进行,没有进位与借位,运算结果也是逻辑数据。逻辑代数(也称布尔代数)是实现逻辑运算的数学工具,有3种基本逻辑关系:与、或、非,任何复杂的逻辑关系都可由这3种关系组合而成。
(1)逻辑“与”运算
做一件事情需要多个条件,只有当条件都成立时才能成功,这种因果关系称为逻辑“与”。“与”运算在不同软件有不同符号表示,如:AND、∧等。
“与”运算规则如下:
0∧0=0
0∧1=0
1∧0=0
1∧1=1
【例2-2】设X=10111010,Y=11101011,求X∧Y=?
解:10111010
∧)11101011
———————
10101010
结果:X∧Y=10101010。
(2)逻辑“或”
做一件事情取决于多个条件,其中只需有一个条件得到满足就能成功,这种因果关系称
为逻辑“或”。“或”运算通常用符号OR、∨等来表示。
“或”运算规则如下:
0∨0=0
0∨1=1
1∨0=1
1∨1=1
【例2-3】设X=10111010,Y=11101011,求X∨Y=?
解:10111010∨11101011
11111011
结果:X∨Y=11111011。
(3)逻辑“非”
逻辑“非”是对一个条件值实现逻辑否定,即“求反”运算。表示逻辑“非”可在逻辑
变量的上面加一横线,如A的“非”表示为A。对某二进制数进行“非”运算,实际上就是对它的各位按位求反。
2.1.3数制间的转换
将数由一种数制转换成另一种数制,称为数制间的转换。由于计算机采用二进制,所以使用计算机进行数据处理时,需要把十进制数转换成二进制数;反之,计算机运行结束后,也需要把二进制数转换成十进制数。虽然此过程现在由计算机系统完成,但掌握数制间的转换是很有必要的。
1.十进制数转换成非十进制数
十进制数转换为二进制数、八进制数和十六进制数的方法是一致的,都是分别把其整数与小数部分进行转换,然后再拼接起来即可。
【例2-4】将十进制数55.35转换成二进制数。
解:首先进行整数部分转换。整数部分的转换采用“除基取余法”,即将十进制整数逐次除以基数2,直到商为0止,然后将所得到的余数“自下向上”排列即可。简言之,除基取余,先余为低(位),后余为高(位)。
55÷2=27……余数为1
27÷2=13……余数为1
13÷2=6……余数为1
6÷2=3……余数为0
3÷2=1……余数为1
1÷2=0……余数为1
整数部分转换结果:(55)
10=(110111)2
然后进行小数部分转换。小数部分的转换采用“乘基取整法”,即将十进制小数逐次乘以基数2,直到小数部分的当前值等于0或满足所要求的精度为止,然后将所得到乘积的整数“自上向下”排列。简言之,乘基取整,先整为高(位),后整为低(位)。
0.35×2=0.7……整数为0
0.7×2=1.4……整数为1
0.4×2=0.8……整数为0
0.8×2=1.6……整数为1
0.6×2=1.2……整数为1
……
小数部分转换结果:(0.35)
10≈(01011)2
总的转换结果:(55.35)10
≈(110111.01011)2
2.非十进制数转换为十进制数
一般可以使用“按权展开求和”的方法进行,即把各非十进制数按权展开,然后求和。
转换方式如下:
(F)x=a1×xn-1+ a2×xn-2+…+ am-1×x1+ am×x0+ am+1×x-1+……
【例25】将二进制数110.01转换成十进制数。
解:(110.01)2=1×22+1×21+0×20+0×2-1+1×2-2=4+2+0+0+0.25
=(6.25)10
【例2-6】将八进制数1085转换成十进制数。
解:(1085)8=1×83+0×82+8×81+5×80=512+0+64+5=(581)10
3.二进制数与八、十六进制数之间的转换
二进制数与八、十六进制数之间有倍数的关系,如23等于8、24等于16,所以二进制数与八、十六进制数之间的转换十分方便。可以用3位二进制数表示1位八进制数,4位二进制数表示1位十六进制数;反之亦然。
【例2-7】将二进制数101111010111.01111转换成八进制数。
解:以小数点为中心,分别以3位二进制数为1组向左右定位(不足3位用0补足),
然后将各组二进制数分别转换成1位八进制数。
101 111 010 111.011 110
5 7 2 7 3 6
结果:(101111010111.01111)2=(5727.36)8
【例2-8】将十六进制数E06D.6A6转换为二进制数。
解:分别将每位十六进制数转换为4位二进制数。
E 0 6 D. 6 A 6=1110 0000 0110 1101. 0110 1010 0110
结果:(E06D.6A6)16=(1110 0000 0110 1101. 0110 1010 0110)2。
2.2数据存储的组织方式
2.2.1数据单位
1.位
2.字节
3.字
2.2.2存储设备的结构
存储设备的最小单位是“位”,存储数据的单位是“字节”,也就是说,计算机按字节组
织存放数据。
1.存储单元
2.存储容量
3.编址与地址
2.3数值在计算机中的表示
信息采集到计算机后可以存储在各种外存中。计算机以层次结构组织数据,该层次结构
从位、字节开始,进而形成域、记录、文件和数据库。
2.3.1机器数与真值
输入计算机中的数据都是以二进制形式表示,对于数值数据,用一个二进制位作符号位,
如0代表“+”,1代表“−”。
2.3.2数的原码、反码和补码
1.原码
正数的符号位用0表示,负数的符号位用1表示,有效值部分用二进制绝对值表示,这种表示称为原码表示。原码表示与机器数表示形式一致。
2反码
将负数除符号位外,各位取反就是负数的反码。正数的反码就是其本身,0的反码有+0
和−0两种情况。3.补码
2.4信息编码
2.4.1编码概述
1.何谓编码
2.计算机编码
计算机是以二进制方式组织、存放信息的,信息编码就是指对输入到计算机中的各种数值与非数值型数据用二进制数进行编码的方式。为了方便信息的表示、交换、存储或加工处理方便,在计算机系统中通常采用统一编码方式,制定统一的编码标准。如BCD码、ASCII码、汉字编码、图形图像编码等等。计算机使用这些编码在计算机内部与外部设备之间、计算机之间进行信息交换。
2.4.2 BCD码(二-十进制编码)
1.何谓BCD码
对十进制数值数据,一般采用BCD(Binary Coded Decimal)编码。在计算机中,为了适应人们的习惯,采用十进制数方式对数值进行输入和输出。这样,在计算机中就要将十进制数变换为二进制数,而将十进制数变换为二进制数的编码统称为BCD码。
2.BCD编码规则
在BCD码中,最常用的一种是8421码。
2.4.3非数值信息的表示
目前,计算机处理的多是非数值信息,因此,解决非数值信息的机内表示至关重要。
1.字符编码(ASCII码)
计算机处理非数值信息时,要对其进行数字化处理,即用二进制编码来表示,这就是字
符编码。西文字符最常用的编码方式是ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它被国际标准化组织制定为国际标准,是目前微机中普
遍采用的编码。
2.汉字编码
(1)国标码(GB2312,汉字信息交换码)
(2)输入码(机外码)
(3)机内码(内码)
(4)字形码(汉字字库)
3.其它信息编码
其它如文字、声音、图形图像为载体的多媒体等信息,也是进行二进制编码。至于其编码的更多信息,可参考相关资料。
2.5计算科学与计算思维
2.5.1计算与计算科学
从计算的角度来说,计算科学(Computational Science)又称为科学计算,它是一种
与数学模型构建、定量分析方法以及利用计算机来分析和解决科学问题的研究领域。从计算机的角度来说,计算科学(Computing Science)是应用高性能计算能力预测和
了解客观世界物质运动或复杂现象演化规律的科学,它包括数值模拟、工程仿真、高效计算机系统和应用软件等。
2.5.2计算思维
1.计算思维的概念
计算思维的本质是抽象与自动化。计算思维虽然具有计算机的许多特征,但是计算思维本身并不是计算机的专属。但正是由于计算机的出现,给计算思维的研究与发展带来了根本性的变化。
2.计算思维的应用
计算思维代表着一种普遍的认识和一类普适的技能,它应该像“读、写、算”一样成为
每个人的基本技能,而不仅仅限于计算机科学家,因此大家都应学习和应用。计算思维这一领域提出的新思想、新方法将促进自然科学、工程技术和社会经济等领域产生革命性的研究成果,其在生物学、脑科学、化学、经济学、艺术等不同学科有着深刻的影响与应用。计算思维也是创新人才的基本要求与专业素质。