计算机中数据的表示和计算.docx
《计算机中数据的表示和计算.docx》由会员分享,可在线阅读,更多相关《计算机中数据的表示和计算.docx(13页珍藏版)》请在冰豆网上搜索。
![计算机中数据的表示和计算.docx](https://file1.bdocx.com/fileroot1/2022-11/16/7d81ae44-c011-41fa-9ddf-904c22ce00f2/7d81ae44-c011-41fa-9ddf-904c22ce00f21.gif)
计算机中数据的表示和计算
第1章计算机系统基础
1.1计算机中数据的表示和计算
1.1.1目标与要求
通过本节学习掌握如下内容:
∙掌握计算机中的常用数制,掌握十进制、二进制、八进制和十六进制之间相互转换的方法。
∙理解数据的机内表示方法,掌握原码、反码、补码、移码等码制及其特点。
∙掌握基本的算术和逻辑运算。
∙理解常用校验码的原理和特点,了解海明码、循环冗余码的编码方法和校验方法,掌握奇偶校验的原理和方法。
本节为基础内容,但是在历次考试中也是必考内容。
题目集中在上午的选择题部分。
考生对这一部分的复习应该达到熟练程度。
对于进制转换、几种码制的表示方式、其优缺点和不同码制的计算应熟练掌握,切忌在考场上为计算基本的转换而浪费宝贵的时间。
计算机中的数据是采用二进制表示的。
计算机中的数据按照基本用途可以分为两类:
数值型数据和非数值数据。
数值型数据表示具体的数量,有正负大小之分。
非数值数据主要包括字符、声音、图像等,这类数据在计算机中存储和处理前需要以特定的编码方式转换为二进制表示形式。
1.1.2数制及其转换
1.数制
r进制即r进位制,r进制数N写为按权展开的多项式之和为:
其中,
是该数制采用的基本数符号,ri是权,r是基数。
例如:
十进制数123456.7可以表示为:
123456.7=1´105+2´104+3´103+4´102+5´101+6´100+7´10–1
计算机中常用的记数制是二进制、八进制、十六进制。
2.数制转换
数制间转换是计算机从业人员必须具备的最基本的技能之一,也是每次《计算机技术与软件专业资格(水平)考试大纲中》要求掌握的技能。
请各位考生予以重视。
(1)十进制与二进制、八进制、十六进制相互转换
算法:
将十进制整数部分除以r取余,将十进制小数部分乘以r取整,将两部分合并。
下面举例说明算法。
例:
将十进制数(347.625)10转化为二进制数。
解:
步骤一:
转换整数部分
Mod(347/2)=1
Mod(173/2)=1
Mod(86/2)=0
Mod(43/2)=1
Mod(21/2)=1
Mod(10/2)=0
Mod(5/2)=1
Mod(2/2)=0
1
(347)10=(101011011)2
步骤二:
将小数部分转化
0.625´2=1.251
0.25´2=0.50
0.5´2=11
(0.625)10 =(101)2
得:
(347.625)10 =(101011011.101)2
(2)考生应该熟记最基本的二进制、八进制、十进制和十六进制的对应关系,以应对各种以此为基础的计算。
表1-1是基本的对应关系。
表1-1二进制、八进制、十进制和十六进制的对应关系
二进制
八进制
十进制
十六进制
二进制
八进制
十进制
十六进制
000
0
0
0
1000
10
8
8
001
1
1
1
1001
11
9
9
010
2
2
2
1010
12
10
A
011
3
3
3
1011
13
11
B
100
4
4
4
1100
14
12
C
101
5
5
5
1101
15
13
D
110
6
6
6
1110
16
14
E
111
7
7
7
1111
17
15
F
(3)二进制的运算法则
二进制加法的进位法则是“逢二进一”。
0+0=01+0=10+1=11+1=0(进位)
二进制减法的进位法则是“借一为二”。
0–0=01–0=11–1=00–1=1(借位)
二进制乘法规则。
0´0=01´0=00´1=01´1=1
二进制除法即是乘法的逆运算,类似十进制除法。
1.1.3机器数和码制
各种数据在计算机中表示的形式称为机器数,其特点是采用二进制数。
计算机中表示数值数据时,为了便于运算,带符号数采用原码、反码、补码和移码等编码方式,这种编码方式称为码制。
1.原码表示方法
数制X的原码定义如下:
若X是纯整数,则
从定义可以看出,正整数的原码就是其本身,负整数的原码取其绝对值,符号位置1即可(0表示正号,1表示负号)。
若X是纯小数,则
正的纯小数的原码就是其自身,而负的纯小数的原码可以通过把其绝对值的原码符号位置1得到。
注:
若用原码表示机器数,0的表示不唯一,会出现+0和–0两种情况。
2.补码表示方法
数制X的补码定义如下:
若X是纯整数,则
[X]补
若X是纯小数,则
[X]补
补码表示法中,最高位是符号位(0表示正号,1表示负号),正数的补码与原码相同,负数的补码则是反码加1,即逐位求反再加1。
补码不会出现0的表示不唯一的情况,没有+0和–0之分。
3.反码表示方法
数制X的反码定义如下:
若X是纯整数,则
若X是纯小数,则
从定义可以看出,正数的反码就是其本身,负数的反码是其绝对值逐位求反得到的,符号位置1即可(0表示正号,1表示负号)。
与原码一样,反码也会出现0的表示不唯一的情况。
4.移码表示法
整数的移码表示:
小数的移码表示:
移码的符号位是1表示正号,0表示负号。
移码即是补码的符号位取反。
1.1.4定点数和浮点数
计算机在处理数值数据时,对小数点的处理有两种不同的方法,分别是定点法和浮点法,也就是对应了定点数据表示法和浮点数据表示法这两种不同形式的数据表示方法。
1.定点数
所谓定点数,就是小数点的位置固定不变的数。
小数点的位置通常有两种约定方式:
定点整数——纯整数,小数点在最低的有效数值位之后;定点小数——纯小数,小数点在最高有效数值位之前。
表1-2是机器数字长为n时,原码、反码、补码、移码的定点数所表示的范围。
表1-2机器数字长为n时表示的带符号的范围
码制
定点整数
定点小数
原码
–(2n–1–1)~+(2n–1–1)
–(1–2–(n–1)–1)~+(1–2–(n–1))
反码
–(2n–1–1)~+(2n–1–1)
–(1–2–(n–1)–1)~+(1–2–(n–1))
补码
–2n–1~+(2n–1–1)
–1~+(1–2–(n–1))
移码
–2n–1~+(2n–1–1)
–1~+(1–2–(n–1))
2.浮点数
当机器字长为n时,定点数的补码和移码可以表示2n个数,而其原码和反码只能表示2n–1个数(正负0占了两个编码)。
定点数所能表示的数值范围比较小,容易溢出,所以引入了浮点数。
浮点数是小数点位置不固定的数,它能表示更大的范围。
二进制数N的浮点数表示方法为
N=2E´F
其中,E称为阶码,F称为尾数。
在浮点表示法中,阶码通常为带符号的纯整数,尾数为带符号的纯小数。
浮点数的一般表示格式如下:
阶码符号
阶码
数符号
尾数
浮点数的表示不是唯一的。
当小数点的位置改变时,阶码也随之相应改变,因为可以用多种浮点形式表示同一个数。
浮点数所能表示的数值范围主要由阶码决定,表示数值的精度则由尾数决定。
为了充分利用尾数来表示更多的有效数字,通常对浮点数进行规格化。
规格化就是将尾数的绝对值限定在区间[0.5,1]。
当尾数用补码表示时,需要注意:
若尾数F³0,则其规格化的尾数形式为:
F=0.1××××…×,其中´可为0,也可为1,即将尾数F的范围限定在区间[0.5,1]内。
若尾数F<0,则其规格化的尾数形式为:
F=1.0××××…×,其中´可为0,也可为1,即将尾数F的范围限定在区间[–1,–0.5)内。
如果浮点数的阶码(包括1位阶符)用R位的移码表示,尾数(包括1位数符)用M位的补码表示,则这种浮点数所能表示的最大的正数为
,最小的负数为
。
1.1.5其他数据表示
1.十进制数表示
在数字系统中,各种数据要转换为二进制代码才能进行处理,而人们习惯于使用十进制数,所以在数字系统的输入输出中仍采用十进制数,这样就产生了用4位二进制数表示一位十进制数的方法,这种用于表示十进制数的二进制代码称为二-十进制代码(BinaryCodedDecimal),简称为BCD码。
BCD码具有二进制数的形式以满足数字系统的要求,又具有10进制的特点(只有10种有效状态)。
在某些情况下,计算机也可以对这种形式的数直接进行运算。
常见的BCD码有以下几种表示。
(1)8421BCD编码
这是一种使用最广的BCD码,是一种有权码,其各位的权分别是(从最高有效位开始到最低有效位)8、4、2、1。
例:
写出十进制数563.97D对应的8421BCD码。
563.97D=010101100011.100101118421BCD
例:
写出8421BCD码1101001.010118421BCD对应的十进制数。
1101001.010118421BCD=01101001.010110008421BCD=69.58D
在使用8421BCD码时一定要注意其有效的编码仅10个,即:
0000~1001。
4位二进制数的其余6个编码1010,1011,1100,1101,1110,1111不是有效编码。
(2)2421BCD编码
2421BCD码也是一种有权码,其从高位到低位的权分别为2、4、2、1,它也可以用4位二进制数来表示1位十进制数。
(3)余3码
余3码也是一种BCD码,但它是无权码,由于每一个码对应的8421BCD码之间相差3,故称为余3码,一般使用较少,故只需作一般性了解。
常见BCD编码见1-3表
表1-3BCD编码表
十进制数
8421BCD码
2421BCD码
余3码
0
0000
0000
0011
1
0001
0001
0100
2
0010
0010
0101
3
0011
0011
0110
4
0100
0100
0111
5
0101
1011
1000
6
0110
1100
1001
7
0111
1101
1010
8
1000
1110
1011
9
1001
1111
1100
(4)压缩与非压缩
BCD码有两种形式,即压缩型BCD码和非压缩型BCD码。
压缩型BCD码一个字节可存放一个两位十进制数,其中高4位存放十位数字,低4位存放个位数字,如56的压缩型8421BCD码是01010110;非压缩型BCD码1个字节可存放1个一位十进制数,其中高字节为0,低字节的低4位存放个位,如5的非压缩型BCD码是00000101,必须存放在1个字节中,56的非压缩型BCD码是0000010100000110,必须存放在1个字中。
2.符号的表示
(1)ASCII码
ASCII码(AmericanStandardCodeforInformationInterchange)即美国标准信息交换码,该编码后来被国际标准化组织ISO采纳而成为一种国际通用的信息交换标准代码,即国际5号码。
ASCII码采用7b进行编码,一共有27(128)种编码,从00000000到11111111可以表示128个不同的字符。
这128个字符又可以分为两类:
可显示/打印字符95个和控制字符33个。
所谓可显示/打印字符是指包括0~9十个数字符,a~z、A~Z共52个英文字母符号,“+”、“–”、“¹”、“/”等运算符号,“。
”、“?
”、“,”、“;”等标点符号,“#”、“%”等商用符号在内的95个可以通过键盘直接输入的符号,它们都能在屏幕上显示或通过打印机打印出来。
控制字符是用