微型计算机原理与应用:第二章 计算机中的数制和码制_第1页
微型计算机原理与应用:第二章 计算机中的数制和码制_第2页
微型计算机原理与应用:第二章 计算机中的数制和码制_第3页
微型计算机原理与应用:第二章 计算机中的数制和码制_第4页
微型计算机原理与应用:第二章 计算机中的数制和码制_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章 计算机中的数制和码制本章学习目标熟练掌握计算机系统中各种进制数的转换; 熟练掌握计算机系统中常用数值编码的形式及其转换 ;了解计算机系统中的数值计算的规律 ;内容分布2.1 数和数制2.2有符号二进制数的表示方法及溢出问题2.3定点数和浮点数2.4二进制编码的十进制数(BCD码)2.5ASCII字符代码2.1 数和数制一、各种数制及其多项式表示法 人们在应用各种数字符号表示事物个数的长期过程中形成了各种数制。数制是以表示数值所用的数字符号的个数来命名的,常见的有十进制、二进制、十六进制等。各种数制中数字符号的个数称为该数制的基数。在我们日常的生活中,使用的是十进制,也称自然进制。而在计

2、算机中由于使用器件的物理状态来表示数字,为了方便和可靠,就采用了二进制数字系统。各种进制以及位置表示法十进制数:采用十个数字和小数点符号来表示任意十进制数,比如374.53。二进制数:只有,两个数字符号,比如(1101.011)2。十六进制数:采用和AF等十六个数字符号,其中A到F分别对应十进制中的10到15两个数,比如(10AF.12)16。此外,常用的进制还有八进制等多种进制。为避免混淆,要在数字后面加添区分符,可以是数字角注,也可以是字母角注。其中分别用B,D,H代表二进制、十进制和十六进制。十进制、二进制、十六进制数码对照表十进制二进制十六进制00000B0H10001B1H20010

3、B2H30011B3H40100B4H50101B5H60110B6H70111B7H81000B8H十进制二进制十六进制91001B9H101010B0AH111011B0BH121100B0CH131101B0DH141110B0EH151111B0FH1610000B10H位置计数法 同一个数字在不同的数位代表的数值是不同的,这种计数方法称为位置计数法。在位置计数法中,对每一个数位赋予不同的位值,称为权。每个数位上的数字所表示的量是这个数字和该数位的权的成绩。所以一般来说,对于基数为X的任意数可以用多项式表示二、各种数制的相互转换非十进制数转换成十进制数可将其按定义展开为多项式,将X=1

4、0代入,按照十进制加法进行计算,所得结果即为对应的十进制数。十进制数转换成非十进制数整数部分按照基数进行连除,直到商为为止,所得的余数序列逆序就为对应的非十进制数;小数部分按照基数进行连乘,直到小数部分为或达到计算要求的精度为止,每次乘积的整数部分序列就为对应的非十进制小数。例1将十进制数47转化为二进制形式。 即 (47)10=(101111)2例2将十进制数0.625转化为二进制形式。 即:(0.625)10= (0.101)2 十六进制数与二进制数之间的转换 二进制转换成十六进制数的方法:从小数点开始分别向左向右把整数及小数部分每位分成一组,如果不足则补。将十六进制数取代每组的数值,就可

5、得到对应的十六进制数。例如:二进制:0010 1110 1001 . 1101 0100 十六进制: E . D 十六进制数转换成二进制数的方法是:用对应的位二进制数取代位十六进制数。例如:十六进制数: C A . B 二进制数:0101 1100 0111 1010. 0011 1011三、二进制数的算术运算二进制数不仅物理实现容易,而且运算方法也较十进制数简单,只要注意加法是“逢二进一”和减法是“借一作二”的特点,根据十进制的算术运算规则,就可以完成。四、二进制数的逻辑运算二进制数常用的逻辑运算有与、或、异或及非运算四种,在组成表达式的时候,可以分别用符号AND、OR、XOR及NOT代表,

6、有时也可以用、等符号。二进制数的逻辑运算只按位进行运算。返回本章首页2.2有符号二进制数的表示方法及溢出问题一、有符号数的表示方法 为了表示一个有符号数,除了数值位外,还应制定符号位,通常以该数的最高位为符号位。D6DDDD3DDD符号位数值位原码表示法 如果正数的符号位用表示,负数的符号位用表示,数值位表示该数的绝对值,这种表示方法就称为原码表示法。X原 原码表示法简单容易理解,与真值的转换也方便这是它的优点。缺点是+和-的表示形式不统一,带来了运算时的麻烦。位二进制原码所能表示的数值范围是-127+127。Xn-2Xn-3X1X0当X1 Xn-2Xn-3X1X0 当X补码表示法a补=a+K

7、 (mod K) = 正数的补码与其原码相同,负数的补码等于其原码除符号位保持不变,其余各位按位取反,再在最低位加。在这里,的补码表示只有唯一的形式。位二进制补码所能表示的数值范围为-128+127。a 0aKK-|a| -Ka0补码的运算规则: X补补X原 X+Y补=X补+Y补 (mod 2n) X-Y补=X补-Y补 (mod 2n) X-Y补=X补+-Y补 (mod 2n) X补-Y补=X补+-Y补 (mod 2n) 需要指出的是,一旦采用补码进行加减运算,所有参加运算的数和结果都是用补码表示的。要得到真值,还需转换。二、有符号数的溢出问题 如果计算机的字长是n位,最高位是符号位,采用补码

8、表示法时,可表示的数的范围为-2n-12n-1-1 如果运算结果超出可表示的有符号数的范围时,就会发生溢出,使计算结果出错。加法运算时:如果次高位(数值部分最高位)形成进位加入最高位,而最高位(符号位)没有进位输出时;反过来,次高位没有进位加入最高位,但最高位却有进位输出时,都会产生溢出。这两种情况分别是:两整数相加超出了能表示的最大数,变成了负数;两负数相加,超出了能表示的最小数,变成了正数。减法运算时:当次高位不需从最高位借位,但最高位却需借位(正数减负数,差超出范围,结果为负数);反过来,次高位需从最高位借位,但最高位不需借位(负数减正数,差超出范围,结果为正数),都会产生溢出。例如:0

9、1001000B +72 01100010B +9810101010B -86+72与+98之和为+170,超过了位二进制数的所能表示的最大数+127,产生了上溢,所以得到了错误的结果-86。10101101B-83+ 10110000B -8001011101B +93-83与-80之和应为-163,超过了位二进制数所能表示的最小数-128,产生了下溢,得到了错误结果+93。01001000B+72 - 10110000B -9810101010B -86+72与-98之差应为+170,超过了位二进制数所能表示的最大数+127,产生了上溢,得到了错误结果-86。10101101B -83 -

10、 01010000B +8001011101B +93-83与+80之差应为-163,超出了位二进制数所能表示的最小数-128,产生下溢,得到错误结果为+93。在后面的章节中会说明,当在加减运算过程中超出有符号数所能表示的数值范围时,溢出标志OF被置。返回本章首页2.3定点数和浮点数在计算机中,用二进制表示实数的方法有两种,即定点法和浮点法。定点法所谓定点法,即小数点在数中的位置是固定不变的,以定点法表示的实数称作定点数。方法一:规定小数点固定在最高数值位之前,机器中所能表示的都是小数。n位数值部分所能表示的数N的范围(原码表示)为1-2-nN-(1-2-n)符号位数值位小数点方法二:规定小数

11、点固定在最低数值位之后,机器中所能表示的数都是整数。n位数值部分所能表示的数N的范围是2n-1N-(2n-1)符号位数值位小数点由于实际问题中很少有纯粹的整数或者小数,所以定点法要求程序员为了调整所要表示的数值范围,而选择比例因子。所有原始数据都要用比例因子化成小数或整数,计算结果又要用比例因子恢复。对于复杂的计算,计算中间需要多次调整比例因子。浮点法任意一个二进制数N总可以写成下面的形式:N=d2p 其中:d称为尾数,是二进制纯小数,指明数据的全部有效数字。前面的符号称作数符,表示数的符号。P称为阶数,它前面的符号称为阶符,由此可知,将尾数d的小数点向右(对+p)或向左(对-p)移动p位,即

12、得数值N。所以阶符和阶码指定小数点的位置,小数点随着p的符号和大小而浮动,所以这种数称为浮点数。如果尾数的绝对值小与1而且大于等于0.5,即采用原码编码的正数或者负数和采用补码编码的正数,其尾数的最高位数字为1;采用补码编码的负数,其尾数的最高位数字为0,则该浮点二进制数被称为规格化浮点数。数的加减运算要求小数点对齐,对于浮点数而言,就是阶码(包括阶符)相等,使阶码相等的操作称为对阶。阶符阶码数符尾数1位m位1位n位浮点数运算规则: 加减法:对阶 尾数相加/减 规格化 判断溢出(看阶码) 乘除法:尾数相乘/除 阶码相加/减 规格化 判断溢出(看阶码) 返回本章首页2.4二进制编码的十进制数(B

13、CD码)分离式BCD码和组合式BCD码 在组合式BCD码格式中,两位十进制数, 存放在一个字节中。 如数 82 存放格式为: 1000 0010 在分离式BCD码格式中, 每位数存放在 8 位字节的低 4位部分,高 4 位部分的内容与数值无关,如数 82 存放格式为: uuuu1000 uuuu0010 其中u表示任意。 BCD码的加减运算(修正) 由于BCD编码是将每个十进制数用一组 4 位二进制数来表示,因此,若将这种BCD码直接交计算机去运算,由于计算机总是把数当作二进制数来运算,所以结果可能出错。 例 2.4.2 用BCD码求 38+49。 0011 1000 38 的BCD码 + 0

14、100 1001 49 的BCD码 1000 0001 81 的BCD码 解决的办法是对二进制加法运算的结果采用“加 6 修正”,将二进制加法运算的结果修正为BCD码加法运算的结果。两个两位BCD数相加时,对二进制加法运算结果修正的规则如下: (1) 如果任何两个对应位BCD数相加的结果向高一位无进位时,若得到的结果小于或等于 9,则该位不需修正;若得到的结果大小 9 且小于 16 位,则该位进行加 6 修正。 (2) 如果任何两个对应位BCD数相加的结果向高一位有进位时(即结果大于或等于 16),该位进行加 6 修正。 (3) 低位修正结果使高位大于 9 时, 高位进行加 6 修正。 例2.4.3 用BCD码求 35+21。 0011 1000 35 +0010 0001 21 0101 0110 56 例 2.4.4 用BCD码求 25+37。 0010 0101 25 +0011 0111 37 0101 1100 低 4 位满足法则 1 +0000 0110 加 6 修正 0110 0010 62 结果正确 例 2.4.5 用BCD码求 38+49。 0011 1000 38 +0100 1001 49 1000 0001 低 4 位满足法则 2 +0000 0110 加 6 修正 1000 0111 87结果正确 1 例 2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论