[信息与通信]微机原理 第2章 计算机中的数.ppt

上传人:音乐台 文档编号:2000840 上传时间:2019-01-30 格式:PPT 页数:55 大小:1.24MB
返回 下载 相关 举报
[信息与通信]微机原理 第2章 计算机中的数.ppt_第1页
第1页 / 共55页
[信息与通信]微机原理 第2章 计算机中的数.ppt_第2页
第2页 / 共55页
[信息与通信]微机原理 第2章 计算机中的数.ppt_第3页
第3页 / 共55页
亲,该文档总共55页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[信息与通信]微机原理 第2章 计算机中的数.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]微机原理 第2章 计算机中的数.ppt(55页珍藏版)》请在三一文库上搜索。

1、第2章,计算机中的数,本章主要内容,2.1 数和数制,1、计数制 数制也称为计数制 是指用一组固定的数字符号和统一的规则表示数的方法。 对于任意r进制数,可以用下式表示:,2.1.1 数制的表示,2.1.1 数制的表示,ai为数码,每一种进制数都有固定的数字符号,这个符号就是数码。 i为数位,数位是指数码在一个数中所处的位置。 r为基数,基数是指在某计数制中,每个数位上能使用的数码的个数。 ri为权,权是基数的幂,这个幂次由数位决定。 例如十进制数据 56.28=5101 + 6100 + 210-1 + 810-2,2.1.1 数制的表示,2、计算机中常用的计数制 在日常生活中,人们最常用的

2、是十进制计数制; 计算机中,为了便于数的存储和表示,使用的是二进制计数制; 由于二进制数据书写和记忆不方便,在计算机系统中还常使用八进制和十六进制等计数制。,注:为了便于计算机识别,汇编程序规定,当十六进制数的首字符为字母时,前面加数字0。,2.1.1 数制的表示,2.1.2 数制之间的转换,1、其他数制转为十进制数: 方法:按权展开,每位数字乘以其权所得到的乘积之和即为其所表示的数的值。,【例2-1】将1010.101B、23.4Q和56.78H转换成十进制。 解: 1010.101B 123 + 022 +121 + 020 +121 + 022 +123 10.625D 23.4Q 2

3、81 + 3 80 + 4 81 19.5D 0FA3.4H 15 162 + 10 161 + 3 160 + 4 161 4003.25D,2.1.2 数制之间的转换,2、十进制数转换为其它数制数 把十进制数转换为其它数制数的方法很多,通常采用的方法有降幂法及乘除法。 降幂法 假设要转换的十进制数为N,找出最接近N并小于等于N的r进制位权值ri; N=NCri,(C0且Nri); 记录这个C,作为i位的位码ai; i=i1,得到下一个位权值ri; 重复2、3、4 ,直至N为0或达到所需精度。,2.1.2 数制之间的转换,2、十进制数转换为其它数制数 乘除法 整数部分: 除以基数取余,直至商

4、为0; 小数部分: 乘以基数取整,直至积为整数或小数位数由精度定。,2.1.2 数制之间的转换,【例2-2】把十进制数117.8125转换成二进制数,转换结果 : 117.8125D=1110101.1101B,【例2-2】把十进制数117.8125转换成二进制数。,转换结果 : 117.8125D=1110101.1101B,【例2-3】把十进制数48956转换成十六进制数,转换结果 :48956D= BF3CH,【例2-3】把十进制数48956转换成十六进制数,转换结果 :48956D= BF3CH,3、其它数制之间的转换 二进制与八进制数之间的转换 由于八进制数以23为基数,所以3位二进

5、制数对应1位八进制数,对应关系如下所示。 二进制数转换为八进制数时,以小数点为界,整数部分向左,小数部分向右,每3位二进制数为一组,用1位八进制数表示,不足三位的,整数部分高位补0,小数部分低位补0。 八进制数转换为二进制数采用与上述方法相反的方法,把每位八进制数用3位二进制数表示即可。,2.1.2 数制之间的转换,【例2-4】把数11010.101B转换为八进制数。 11010.101B 011 010 .101B 32.5Q 【例2-5】把数34.56Q转换为二进制数。 34.56Q 011 100.101 110B 11100.101B,2.1.2 数制之间的转换,二进制与十六进制数之间

6、的转换: 由于十六进制数以24为基数,所以4位二进制数对应1位十六进制数,对应关系如下表所示。 转换方法和二进制与八进制数之间的转换方法类似,区别是,这里为4位一组。,【例2-6】把二进制数11010.101B转换为十六进制数。 11010.101B 0001 1010.1010B 15.AH 【例2-7】把十六进制数56.78H转换为二进制数。 56.78H 0101 0110.0111 1000B 1010110.01111B,2.1.3 二进制数的运算,算术运算 加法规则:逢二进一。即: 0 + 0 0; 1 + 0 1; 0 + 1 1; 1 + 1 10; 减法规则:借一当二。即:

7、0 0 0; 1 0 1; 0 1 1; 1 1 0; 乘法规则:任何数乘以0得0,1乘以任何数得该数。即: 0 00; 0 10; 1 00; 1 11; 除法规则:0除以任何数得0,任何数除以1得该数,除数不得为0。即: 010 ; 111 。,2.1.3 二进制数的运算,逻辑运算,“与”运算(AND) “或”运算(OR) A B AB A B AB 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 “非”运算(NOT) “异或”运算(XOR) A A A B AB 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0,2.1.3 二

8、进制数的运算,逻辑运算 【例2-8】多位二进制算术运算。 1010 1010B + 0101 1101B 1 0000 0111B 1010 1010B0101 1101B 0100 1101B 【例2-9】多位二进制逻辑运算。 1010 1010B 0101 1101B 0000 1000B 1010 1010B 0101 1101B 1111 1111B 1010 1010B 0101 1101B 1111 0111B,2.1.3 二进制数的运算,补充1:十六进制数的算术运算 十六进制数进行算术运算时逢十六进一,借一为十六; 例如:,05C3H + 3D25H ? 3D25H - 05C3

9、H ?,加法:两个一位数之和为S,若S=16,结果用S-16取代S,并进位1。,减法:于十进制相似,够减时直接相减,不够时服从向高位进1为16的规则。,2.1.3 二进制数的运算,补充2:十六进制数的逻辑运算 十六进制数运算时转换成二进制数,按位进行操作; 例如: 05C3H 3D25H = 0000 0110 1100 0011B 0011 1101 0010 0101B = 0000 0000 0000 0001B = 0001H,2.2带符号二进制数的表示与运算,数分为带符号数和无符号数两种类型; 无符号数不分正负,表示无符号数的各二进制数位都是数值位; 带符号数有正数和负数之分。在计算

10、机中,用0或1来表示数的正负。 在计算机中,一个数连同其符号在内的数值化的表示形式称为机器数。一般用最高位表示数的符号。而这个数本身的值称为真值。 机器数可以用不同编码方法表示。常用的编码方式有:原码、反码和补码。,2.2.1带符号二进制数的表示,1、原码表示法:符号 + 绝对值 最高位表示符号(正数用0,负数用1) 其他位表示数值位 数x的原码记作x原 ,如机器字长为n,则原码的定义如下:,1、原码,例如当机器字长n8时, +0D原 0000 0000 , 0D原 1000 0000 +1D原 0000 0001 , 1D原 1000 0001 +45D原 0010 1101 ,45D原 1

11、010 1101 +127D原 0111 1111 , 127D原 1111 1111 0 的表示不惟一,1、原码,按照定义,设n为字长,则原码能表示的整数范围是:(2n-11)+(2n-11); 例如: 8位二进制原码表示的整数范围是 127D+127D; 16位二进制原码表示的整数范围是 32767D+32767D。,2、反码,反码表示法: 一个正数的反码和原码相同; 一个负数的反码的符号位与其原码的符号位相同,其余位通过将其原码的数值部分按位求反得到。 数x的反码记作x反 ,如机器字长为n,则反码的定义如下:,2、反码,例如当机器字长n8时, +0D反0000 0000 , 0D反111

12、1 1111 +1D反0000 0001 , 1D反1111 1110 +45D反0010 1101 , 45D反1101 0010 +127D反0111 1111 , 127D反1000 0000 0 的表示不惟一,2、反码,按照定义,设n为字长,则反码能表示的整数范围是:(2n-11)+(2n-11); 例如: 8位二进制反码表示的整数范围是 127D+127D; 16位二进制反码表示的整数范围是 32767D+32767D。,3、补码,补码表示法: 一个正数的补码和反码、原码相同; 一个负数的补码的符号位与其原码的符号位相同,其余位可通过将其反码数值部分加1得到。 数x的补码记作x补 ,

13、如机器字长为n,则补码的定义如下:,3、补码,例如当机器字长n8时, +0D补0000 0000 , 0D补0000 0000 +1D补0000 0001 , 1D补1111 1111 +45D补0010 1101 , 45D补1101 0011 +127D补0111 1111 , 127D补1000 0001 0 的表示惟一,3、补码,按照定义,设n为字长,则补码能表示的整数范围是:2n-1+(2n-11); 例如: 8位二进制补码表示的整数范围是 128D+127D; 16位二进制补码表示的整数范围是 32768D+32767D。 补码比原码、反码所能表示的数的范围大,数0的补码只有一种表

14、示形式,是计算机中采用的带符号数的编码方式。,2.2.2带符号二进制数的运算,1、补码运算规则 采用补码表示的带符号数,其符号位和数值位同时参与运算,运算结果仍然是补码; 任何两数相加,无论正负,只要把它们的补码相加即可; 任何两数相减,无论正负,只要把减数相反数的补码与被减数的补码相加即可; 运算公式如下: x + y补 x补 + y补 x y补 x补 + y补 从上面的公式可以看出,补码的减法运算可以转换成加法来完成的,因此,在计算机中利用加法器就可以实现补码的加法和减法运算。,由于计算机的字长有限,因此,所能表示的数是有范围的。例如8位二进制补码表示的整数范围是 128D+127D; 当

15、运算结果超过这个范围时,运算结果将出错,这种情况称为溢出。 产生溢出的原因是数值的有效位占据了符号位。,2、补码运算的溢出问题,由于计算机的字长有限,因此,所能表示的数是有范围的。当运算结果超过这个范围时,运算结果将出错,这种情况称为溢出。 溢出一般会造成结果出错。 而由于运算结果超出了位数,最高有效位会向前产生一个进位,这个进位自然丢失,一般不表示结果的对错; 产生溢出的原因是数值的有效位占据了符号位。,2、补码运算的溢出问题,利用符号位判别 若两个同号数相加,结果的符号位与之相反,则溢出; 若两个异号数相减,结果的符号位与减数相同,则溢出; 若两个异号数相加或两个同号数相减,则不溢出。 利

16、用运算过程中的进位产生情况判别 若次高位(最高数值位)和最高位(符号位)不同时产生进位或借位,则溢出; 若次高位(最高数值位)和最高位(符号位)都产生进位或借位,则不溢出。,溢出的判别方法,【例2-10】当字长为8位时,计算-64D+64D。,溢出的判别,本例中运算结果为0,根据定义,在8位补码的表示范围128D+127D之内,不会溢出。 利用符号位判别:两个异号数相加不溢出。 利用进位判别:次高位和最高位都产生了进位,不溢出。,【例2-11】当字长为8位时,计算127D+1D。,溢出的判别,本例中运算结果为128,根据定义,超出了8位补码的表示范围128D+127D,溢出。 利用符号位判别:

17、两个正数相加,结果是负数,溢出。 利用进位判别:次高位向前有进位,而最高位没有产生进位,溢出。,2.3二进制编码的十进制数,2.3.1 BCD码的编码方法 在计算机内部采用二进制形式表示数,但人们习惯使用十进制数。 BCD码,是二进制编码的十进制数的简称,是为了便于人机交往而设计的一种数字编码。 BCD码的编码规则是:用4位二进制数字表示一位十进制数字。 在十进制数码与4位二进制编码表示的数之间选择不同的对应规律,就可以得到不同形式的编码。常用的BCD码有:8421BCD码、余3码、格雷码等。 8086微型计算机中支持8421BCD码的运算。,1、8421BCD码的编码规则,8421BCD码的

18、4位二进制数码的位权分别是:8,4,2,1。8421BCD码的名称也就是由此而来。 将每位数码与对应的权相乘求和,就是它代表的十进制的数值。 十进制数与8421BCD码的对应关系如下表所示:,1、8421BCD码的编码规则,8421BCD码的优点: 十进制数的每一位表示法与该数的二进制形式一样,容易识别。 8421BCD码的缺点: 10101111这6个编码没有用到,是无意义的编码。 运算结果如果落到这6个编码的范围内时,需要经过转换后,才能得到正确的结果。 这种转换,在80x86微型计算机中,可以通过十进制调整指令来实现。,2、8421BCD码的格式,BCD码有两种格式: 压缩8421BCD

19、码(组合8421BCD码) 用4位二进制数表示1位十进制数,一个字节可以表示两位十进制数。 例如:96D的压缩8421BCD码表示形式是: 1001 0110。 非压缩8421BCD码(非组合8421BCD码) 用一个字节的低4位表示1位十进制数,高4位任意,通常设为0000,一个字节只表示一位十进制数。 例如:96D的非压缩8421BCD码表示形式是: 0000 1001 0000 0110。,2.3.2 BCD码的加减运算,1、压缩8421BCD码的加减运算 参与运算的操作数为压缩8421BCD码; 结果也是压缩8421BCD码。 【例2-12】计算用压缩8421BCD码表示的两个十进制数

20、16和18的和。 第一步:做加法。 16D=00010110BCD,18D=00011000BCD。运算过程如下:,【例2-12】,第二步:分析上式运算结果,进行十进制调整。 结果分析: 16D18D=34D,用压缩8421BCD码进行加法运算,结果应为00110100BCD。 但上式运算的结果是0010 1110,其中的低位1110不是有效的压缩8421BCD码。 原因分析: 采用压缩8421BCD码运算时,运算器仍然进行的是二进制数的运算,采用的进位规则不是十进制运算规定的逢十进一。 对应到本例中,就是个位上6和8相加,结果是14,大于9了,应该向十位有个进位(逢十进一),但是实际这一进位

21、并没有产生。,【例2-12】,解决的办法: 将出错的那一位压缩8421BCD码与6相加。 相加后如果产生进位,则该进位应该加到压缩8421BCD码的高位。,【例2-13】,计算用压缩8421BCD码表示的两个十进制数39和98的和。 解:39D=00111001BCD,98D=10011000BCD。,【例2-14】,计算用压缩8421BCD码表示的两个十进制数35和16的差。 解:35D=00110101BCD,16D=00010110BCD。,压缩8421BCD数运算的十进制调整规则,加法运算后的十进制调整规则 若加法和的个位大于9或向十位有进位,则需要“加6调整”。即,所得和要加上000

22、00110BCD; 若加法和的十位大于9或向百位有进位,则需要“加60调整”。即,所得和要加上01100000BCD。 减法运算后的十进制调整规则 若减法差的个位大于9或向十位有借位,则需要“减6调整”。即,所得和要减去00000110BCD; 若减法差的十位大于9或向百位有进位,则需要“减60调整”即,所得和要减去01100000BCD。,2、非压缩8421BCD码的加减运算,参与运算的操作数为非压缩8421BCD码; 结果也是非压缩8421BCD码。 【例2-15】计算用非压缩8421BCD码表示的两个十进制数8和7的和。,【例2-16】,计算用非压缩8421BCD码表示的两个十进制数9和

23、8相加。 解:,2.4 无符号整数,在某些情况下,要处理的数全是正数,此时就没有必要再保留符号位了。可以把最高有效位也作为数值位,这样的数称为无符号数。 8位无符号数的表数范围是:0255D; 16位无符号数的表数范围是:065535D。 在计算机中,无符号数常用来表示地址。 带符号数与无符号数的处理是不一样的,要注意区分。,2.5 字符的表示法,在计算机中处理的信息并不全是数,还有字符或字符串。例如,姓名、编号等信息。因此,计算机必须能表示和处理字符。 80x86系列计算机中采用美国标准信息交换代码ASCII(American Standard Code for Information Interchange)来表示一个字符。,ASCII,标准ASCII码用7位二进制数编码,共有128个。 计算机存储器基本单位为8位,ASCII码最高位通常为0,通信时,最高位用作奇偶校验位。 ASCII码表中的前32个和最后1个编码是不能显示的控制字符,用于表示某种操作。 ASCII码表中20H后的94个编码是可显示和打印的字符,其中包括数码09,英文字母,标点符号等。 字符的ASCII值可以看作字符的码值,如字符“A”的ASCII值为41H,“Z”的ASCII值为5AH,利用这个值的大小可以将字符排序,以后我们会遇到字符串大小比较,实际上是比较ASCII码值的大小。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1