第2章计算机中的数制和编码(2h)_第1页
第2章计算机中的数制和编码(2h)_第2页
第2章计算机中的数制和编码(2h)_第3页
第2章计算机中的数制和编码(2h)_第4页
第2章计算机中的数制和编码(2h)_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、西邮计算机学院西邮计算机学院第2章 计算机中的数制和编码主要内容l简要介绍无符号数的表示方法、各种数制的相互转换以简要介绍无符号数的表示方法、各种数制的相互转换以及二进制数的运算规则;及二进制数的运算规则;l重点介绍带符号数的表示方法、补码加减法运算以及运重点介绍带符号数的表示方法、补码加减法运算以及运算时溢出的判断方法;算时溢出的判断方法;l十进制数的二进制编码、字符的十进制数的二进制编码、字符的ASCIIASCII编码编码l补码的表示及其运算l溢出和进位的区别,补码运算溢出的判断方法1234章节安排计算机中的数制二进制运算计算机中的码制符号数表示法引言l二进制数及其编码是所有微型计算机的基

2、本语二进制数及其编码是所有微型计算机的基本语言,主要有以下优点:言,主要有以下优点:l二进制在物理上容易实现;二进制在物理上容易实现;l运算规则简单;运算规则简单;l采用二进制逻辑性强,用十六进制数表示和处理二进采用二进制逻辑性强,用十六进制数表示和处理二进制数也极为方便。制数也极为方便。l因此,建立这些数和编码的雄厚基础,对于深因此,建立这些数和编码的雄厚基础,对于深入学习微型计算机是非常重要的。入学习微型计算机是非常重要的。2.1 计算机中的数制l2.1.1 2.1.1 十进制数制十进制数制l区别一种数制的基本特征是底数或基数。底数表示所区别一种数制的基本特征是底数或基数。底数表示所用的字

3、符或数码的数目,这些字符表示数制中量的大用的字符或数码的数目,这些字符表示数制中量的大小。小。l十进制数引用十进制数引用09十个数码表示量的大小,故底数为十个数码表示量的大小,故底数为10l1. 按位计数法:按位计数法:l十进制是有位、数的数制。即一个数中的每位都有特十进制是有位、数的数制。即一个数中的每位都有特定的权,此权决定其数值的大小,每个位权由底数的定的权,此权决定其数值的大小,每个位权由底数的n次幂确定。次幂确定。1.按位计数法 100=1 105=100000101=10 106=1000000102=100 107=10000000103=1000 108=10000000010

4、4=10000 109=1000000000例如:十进制数例如:十进制数 4603 按位计数表示为按位计数表示为 4*103+6*102+0*101+3*100=4000+600+00+3=46032. 小数 十进制小数也是具有位权的数,其权都是十进制小数也是具有位权的数,其权都是10的负的负n次幂次幂10-1=0.1 10-5=0.00001 10-2=0.01 10-6=0.000001 10-3=0.001 10-7=0.0000001 10-4=0.0001 10-8=0.00000001 小数点把一个数分为整数和小数两部分。如十进制数小数点把一个数分为整数和小数两部分。如十进制数27

5、8.94,用按位计数法表示为:,用按位计数法表示为: 2*102+7*101+8*100+9*10-1+4*10-2=200+70+8+0.9+0.04 =278.94 即:每位数字乘以它所在的权,相加则得所求的数值。即:每位数字乘以它所在的权,相加则得所求的数值。2.1.2 二进制数制l按位计数法中最简单的是二进制。它只包括两个元素或状按位计数法中最简单的是二进制。它只包括两个元素或状态,即态,即1和和0 。l1. 按位计数法按位计数法l和十进制数一样,二进制数的每一位所在的位置均带和十进制数一样,二进制数的每一位所在的位置均带有一个确定数值大小的特定权。有一个确定数值大小的特定权。20=1

6、224=10000221=102 25=100000222=100226=1000000223=1000227=100000002例如,二进制数例如,二进制数1101012 按位计数为:按位计数为: 1*25+1*24+0*23+1*22+0*21+1*20 =100000+10000+000+100+00+1 =11010122. 二进制小数l 把二进制小数表示为把二进制小数表示为2 的负的负n次幂。次幂。 2-1=0.12 2-2=0.012 2-3=0.0012 2-4=0.00012 2-5=0.0000122-6=0.0000012 2-7=0.00000012 2-8=0.0000

7、00012l例如,二进制数例如,二进制数 0.1101 按位表示为:按位表示为: 1*2-1+1*2-2+0*2-3+1*2-4 =1*0.12+1*0.012+0*0.0012+1*0.00012 =0.12+0.012+0.0002+0.00012 =0.1101211(1 1)二)二十进制转换十进制转换 把二进制数转换成相应的十进制数,只要将二进把二进制数转换成相应的十进制数,只要将二进制中出现制中出现1的所在位权(转换为十进制)相加即可。整的所在位权(转换为十进制)相加即可。整数和小数位权如下:数和小数位权如下: 整数整数 小数小数272625242322212012864321684

8、212-12-22-3.5.25.125l.3. 二进制数和十进制数的转换3. 二进制数和十进制数的转换例:把二进制数例:把二进制数 101101.11 转换转换成相应的十进制数:成相应的十进制数:二进制数二进制数 1 0 1 1 0 1 . 1 1 位权位权 25 24 23 22 21 20 2-1 2-2十进制数十进制数 32 + 0 + 8 + 4 + 0 + 1 + 0.5 + 0.25 = 45.75(2)十进制)十进制二进制转换二进制转换l把一个十进制的整数依次除以所需要的底数,就能够转换把一个十进制的整数依次除以所需要的底数,就能够转换成不同底数的数。成不同底数的数。l如:把十

9、进制的数转换成相应的二进制数,只要把十进制如:把十进制的数转换成相应的二进制数,只要把十进制数依次除以数依次除以 2 并记下每次所得的余数(余数总是并记下每次所得的余数(余数总是 1 或或 0),所得的余数即为相应的二进制数。,所得的余数即为相应的二进制数。3. 二进制数和十进制数的转换 例如例如,把十进制数,把十进制数25转换成二进制数:转换成二进制数:25 / 2 = 12 余数余数 1 LSB(least significant bit)12 / 2 = 6 0 6 / 2 = 3 0 3 / 2 = 1 1 1 / 2 = 0 1 MSB(most significant bit )

10、收集收集余数,得到余数,得到110012 = 2510 要将一个十进制小数转换成不同底数或基数的要将一个十进制小数转换成不同底数或基数的数时数时,则,则应把所需的底数或基数连续不断地乘以该应把所需的底数或基数连续不断地乘以该十进制十进制小数,并且小数,并且记录所得的溢出数(即整数部分),记录所得的溢出数(即整数部分),直到直到小数得小数得 0 为止。为止。3. 二进制数和十进制数的转换l例:将十进制数例:将十进制数0.3125转换成相应的二进制数转换成相应的二进制数 0.3125*2=0.625=0.625 溢出溢出 0 MSB 0.6250*2=1.250=0.250 溢出溢出 1 0.25

11、00*2=0.500=0.500 溢出溢出 0 0.5000*2=1.000=0 溢出溢出 1 LSB 即即 :0.3125=0.01012 如果十进制数包含整数和小数两部分,则必须将小数点如果十进制数包含整数和小数两部分,则必须将小数点两边的整数和小数分开,分别完成相应的转换,再把二进制两边的整数和小数分开,分别完成相应的转换,再把二进制整数和小数部分组合在一起。整数和小数部分组合在一起。3. 二进制数和十进制数的转换3. 二进制数和十进制数的转换例如,将十进制数例如,将十进制数14.375转换成相应的二进制数:转换成相应的二进制数: 14.375=14+0.37514/2=7 余数余数 0

12、 LSM 0.375*2=0.75 溢出溢出 0 MSB 7/2=3 1 0.750*2=1.50 1 3/2=1 1 0.500*2=1.0 1 LSB 1/2=0 1 MSB即:即:14=11102 即:即:0.375=0.0112所以所以,14.375=14+0.375 =11102+0.0112 =1110.01122.1.3 十六进制数制 二进制数二进制数书写和阅读均不方便书写和阅读均不方便,故采用,故采用十六进制数十六进制数来缩写来缩写相应的相应的二进制数。顾名思义,十六进制以二进制数。顾名思义,十六进制以1610为底为底,用数字,用数字09和字母和字母AF表示表示。 十进制数与十

13、六进制数、十进制数与十六进制数、二进制数的二进制数的关系如下:关系如下:十进制十进制十六进制十六进制二进制二进制0 00 0000000001 11 1000100012 22 2001000103 33 3001100114 44 4010001005 55 5010101016 66 6011001107 77 701110111十进制十进制十六进制十六进制二进制二进制8 88 8100010009 99 9100110011010A A101010101111B B101110111212C C110011001313DD110111011414E E111011101515F F111

14、111112.2 计算机中的码制2.2.1 二进制编码二进制编码的的十进制十进制 (BCD披披着二进制皮的十进制数)着二进制皮的十进制数)u尽管尽管用二进制工作有很多硬件设备方面的优点,但用二进制工作有很多硬件设备方面的优点,但转转换和换和认出二进制的大小还是要花费相当多的时间,这认出二进制的大小还是要花费相当多的时间,这是一个是一个明显明显的缺点的缺点。uBCD (Binary Coded Decimal)编码使用四位二进编码使用四位二进制制码表示码表示09个十进制数。它采用标准的个十进制数。它采用标准的8421的纯二的纯二进制码的进制码的位权位权值,也称为值,也称为8421BCD编码。因许

15、多数字编码。因许多数字设备、仪器设备、仪器仪表均仪表均用十进制输入输出,故用十进制输入输出,故BCD码被广码被广泛使用。泛使用。十进制十进制8421BCD8421BCD二进制二进制000000000100010001200100010300110011401000100501010101601100110701110111810001000910011001100001 00001010110001 00011011120001 00101100130001 00111101140001 01001110150001 01011111 用用BCD码表示十进制数,只要码表示十进制数,只要把每个十

16、进制数用适当的二进制把每个十进制数用适当的二进制4位码代替即可。位码代替即可。例如,834用BCD码表示为: 1000 0011 0100 BCD例如,0.764 0.0111 0110 0100 BCD例如,将BCD数转换成相应的十进制数:0110 0010 1000.1001 0101 0111BCD=628.9571. 压缩型BCD码l压缩压缩型型BCDBCD码是用一个字节表示两位十进制数码是用一个字节表示两位十进制数。l例如例如:29 0010 100129 0010 1001BCDBCD 86 1000 86 1000 01100110BCDBCD2. 非压缩型BCD码l非压缩型非压

17、缩型BCDBCD码用一个字节表示一位十进制数。高码用一个字节表示一位十进制数。高4 4位总是位总是00000000,低,低4 4位用位用0000000010011001中的一种组合中的一种组合来表示来表示0 09 9中的某一个十进制数。中的某一个十进制数。l例如:例如:9 0000 10019 0000 1001BCDBCD3. BCD码运算的修正如果如果两个对应位两个对应位BCDBCD数相加的结果向高位无进位,数相加的结果向高位无进位,且结果小于或等于且结果小于或等于9 9,则该位不需要修正;若结果,则该位不需要修正;若结果大于大于9 9小于小于1616,则该位需要加,则该位需要加6 6修正

18、。修正。如果如果两个对应位两个对应位BCDBCD数相加的结果向高位有进位(数相加的结果向高位有进位(结果大于或等于结果大于或等于1616),则该位需要进行加),则该位需要进行加6 6修正。修正。因此因此,两个数进行运算时,首先按二进制数进行,两个数进行运算时,首先按二进制数进行运算,然后必须用相应的调整指令进行调整,从运算,然后必须用相应的调整指令进行调整,从而得到正确的而得到正确的BCDBCD码结果码结果。4. 总结BCDBCD码的一个优点就是十个码的一个优点就是十个BCDBCD码的码的组合格式容易记忆组合格式容易记忆。一旦你能用二进制数工作,对一旦你能用二进制数工作,对BCDBCD码就可以

19、像十进制数码就可以像十进制数一样迅速自如地读出。同理也可以很快得出以一样迅速自如地读出。同理也可以很快得出以BCDBCD码表码表示的十进制数。示的十进制数。例如:例如:0110 0010 1000.1001 0100 1000110 0010 1000.1001 0100 100BCDBCD=628.954=628.9541010BCDBCD码码可以简化人机联系,但比纯二进制码效率低可以简化人机联系,但比纯二进制码效率低。对同。对同一个给定的十进制数,用一个给定的十进制数,用BCDBCD码表示的位数比纯二进制码码表示的位数比纯二进制码表示的位数要多。如:表示的位数要多。如:8383,纯二进制码

20、表示为,纯二进制码表示为10100111010011,只需七位。用只需七位。用BCDBCD码表示时,为码表示时,为1000 00111000 0011,需八位。,需八位。4. 总结BCDBCD码效率低码效率低,原因是每位数据都需要某些数字电路和,原因是每位数据都需要某些数字电路和他对应,这使得与他对应,这使得与BCDBCD码连接的附加电路成本提高,设码连接的附加电路成本提高,设备的复杂性增加,功率消耗较大。用备的复杂性增加,功率消耗较大。用BCDBCD码进行的运算码进行的运算所花的时间比纯二进制码要多,而且复杂。所花的时间比纯二进制码要多,而且复杂。用二进制四位可以表示用二进制四位可以表示2

21、24 4=16=16中不同状态的数,即:中不同状态的数,即:0 01515个十进制数。而个十进制数。而BCDBCD数制,数制,10101515中有六个状态被中有六个状态被浪费掉浪费掉。所以,采用。所以,采用BCDBCD数之后,为了改善数字设备与数之后,为了改善数字设备与操作者间的通信,而损失了某些效率操作者间的通信,而损失了某些效率代价。代价。4. 总结十进制十进制BCDBCD码的码的转换转换是简单和直接的。但二进制是简单和直接的。但二进制BCDBCD码的转换就不能直接码的转换就不能直接实现实现, ,必须必须先将二进制转先将二进制转换成十进制,然后再转换成换成十进制,然后再转换成BCDBCD码

22、。码。例如:将二进制例如:将二进制1011.011011.01转换成相应的转换成相应的BCDBCD码。码。 首先,将二进制数转换成十进制数首先,将二进制数转换成十进制数 1011.01=11011.01=1* *2 23 3+0+0* *2 22 2+1+1* *2 21 1+1+1* *2 20 0+0+0* *2 2-1-1+1+1* *2 2-2-2=11.25=11.25 然后,将十进制结果转换成然后,将十进制结果转换成BCDBCD码:码: 0001 0001 0001.0010 0001.0010 01010101BCDBCD然后,将十进制结果转换成二进制数然后,将十进制结果转换成二

23、进制数96.625=96+0.62596/2=48余数余数 00.625*2=1.25 溢出溢出 148/2=24 00.25*2=0.50024/2=12 00.50*2=1.0112/2=6 06/2=3 03/2=1 11/2=0 1 1001 0110.0110 0010 0101BCD = 1100000.1012将将BCDBCD码转换成二进制数,则完成上述运算的逆运码转换成二进制数,则完成上述运算的逆运算即可。算即可。 例如:将例如:将BCDBCD码码1001 0110.0110 0010 01011001 0110.0110 0010 0101转换成相转换成相应的二进制数。应的二

24、进制数。 首先,将首先,将BCDBCD码转换成十进制数:码转换成十进制数:1001 0110.0110 0010 0101=96.6251001 0110.0110 0010 0101=96.6254. 总结2.2.2 ASCII码行行0123456789101112131415 765 43210000010100111001011101110000NULDLESP0Pp0001SOHDC1!1AQaq0010STXDC2“2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB7G

25、Wgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;Kk1100FFFS,Nn1111SIUS/?O_oDEL列列012345672.3 二进制运算2.3.1 二进制二进制加法加法 加法的四条规加法的四条规则:则: 例如,例如,100011112 加加 101101012 (1)0+0=0 (2)0+1=1 (3)1+1=0 进位进位1 1 0 1 1 0 1 0 1 (4)1+1+1=1 进位进位1 + 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0 2.3.2 二进制减法二进制减法的四条规则:二进制减法的四

26、条规则: (1)0-0=0 (2)1-1=0 (3)1-0=1 (4)0-1=1 借位借位1 例如,例如,110001002 减减 001001012 1 0 1 1 1 10 1 10 (借位以后的被减数) 1 1 0 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 0 1 1 1 1 12.3.3 二进制乘法二进制乘法规则:二进制乘法规则:(1)0*0=0(2)0*1=0(3)1*0=0(4)1*1=1例如,例如,11112乘乘11012 1 1 1 1 * 1 1 0 1 * 1 1 1 1 0 0 0 0 0 0 0 0 (进位) 1 1 1 1 1 1 1 1 1 1 1

27、 1 0 0 (进位) 1 0 0 1 0 1 1 1 1 1 11 1 1 1 0 0 0 (进位)1 1 0 0 0 0 1 12.3.4 二进制除法 除法是乘法的逆运算。因此,它是确定一个数可以除法是乘法的逆运算。因此,它是确定一个数可以从另一个数中减多少次的过程。从另一个数中减多少次的过程。 例如,例如,1000112 被被 1012 除。除。 0 0 0 1 1 1 商商 1 0 1 1 0 0 0 1 1 被除数被除数 1 0 1 1 1 1 余数余数 1 0 1 1 0 1 余数余数 1 0 1 0 余数余数 2.4 符号数的表示法 2.4.1 符号数的表示法:原码、反码、补码符

28、号数的表示法:原码、反码、补码(1)原码)原码采用这种方法时,一个二进制数同时包含有符号(采用这种方法时,一个二进制数同时包含有符号(+或或-)和数量。因此正值和负值表示如下:)和数量。因此正值和负值表示如下: +4510 = 0 0 1 0 1 1 0 1 2 符号符号 数量数量 -4510 = 1 0 1 0 1 1 0 1 22.4 符号数的表示法(2)反码反码用这种方法时,正数表示法与原码的表示方法一样。如 + 4 10 = 0 0 0 0 0 1 0 0 2 +12710 = 0 1 1 1 1 1 1 1 2负数表示为正数的反码。一个数的反码是把所有0变成1,所有1变成0而形成的。

29、如上所示, - 410 = 1 1 1 1 1 0 1 1 2 -12710 = 1 0 0 0 0 0 0 0 2(2)反码)反码位组合格式位组合格式无符号二进制数无符号二进制数反码反码000000000+0000000011+1000000102+2000000113+3*01111100124+12401111101125+12501111110126+12601111111127+12710000000128-12710000001129-12610000010130-12510000011131-124*11111100252-311111101253-211111110254-11

30、1111111255-0(3)补码)补码 用这种方法,正数与原码以及反码法一样表示,即:它用这种方法,正数与原码以及反码法一样表示,即:它对对+12710以下的所有正值使用同样的位组合格式,而负数则以下的所有正值使用同样的位组合格式,而负数则表示为正数的补码。表示为正数的补码。 一个数的补码是把这个数的反码再加一个数的补码是把这个数的反码再加1 1形成的。形成的。例如,例如,-4-4为为+4+4(0000010000000100)的补码。)的补码。 1 1 1 1 1 0 1 1 2 + 1 1 1 1 1 1 1 0 0 2注意:注意:8位补码数的范围是从位补码数的范围是从-12810到到+

31、 +12710; 0 只有一种表示法。只有一种表示法。位组合格式位组合格式无符号二进制数无符号二进制数补码补码反码反码0000000000+0000000011+1+1000000102+2+2000000113+3+3*01111100124+124+12401111101125+125+12501111110126+126+12601111111127+127+12710000000128-128-12710000001129-127-12610000010130-126-12510000011131-125-124*11111100252-4-311111101253-3-2111111

32、10254-2-111111111255-1-02.4.2 补码的运算 补码表示法的特征补码表示法的特征: :同一个电路既可用于无符号数相同一个电路既可用于无符号数相加加, ,也可用于有符号数相加也可用于有符号数相加。 例如,无符号数例如,无符号数132和和14相加相加 1 0 0 0 0 1 0 0 2 132 0 0 0 0 1 1 1 0 2 +14 1 0 0 1 0 0 1 0 2 146 看上面给出的例子,如果假定输入是有符号的补码看上面给出的例子,如果假定输入是有符号的补码数,则为:数,则为: 1 0 0 0 0 1 0 0 2 -124 0 0 0 0 1 1 1 0 2 +1

33、4 1 0 0 1 0 0 1 0 2 -1101. 带符号数的运算(1)正数相加正数相加 例如,例如,+7加加+3 0 0 0 0 0 1 1 1 +7 + 0 0 0 0 0 0 1 1 +3 0 0 0 0 1 0 1 0 +10 注意:注意:能表示为补码形式的最大能表示为补码形式的最大8位正数是位正数是+127,如果超,如果超 过这个值便产生错误。例如,过这个值便产生错误。例如,+65加加+67 0 1 0 0 0 0 0 1 + 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0例如,例如,+7加加-3 0 0 0 0 0 1 1 1 (+7) + 1 1 1 1 1 1

34、 0 1 +(-3) 1 0 0 0 0 0 1 0 0 (+4) 丢掉最后的进位丢掉最后的进位 注意:注意:如果忽略进位位,则和是正确的。请记住如果忽略进位位,则和是正确的。请记住MPUMPU相加相加 两个数时,是把它们看作无符号的二进制数。两个数时,是把它们看作无符号的二进制数。 例如,例如,-9 加加 +8 1 1 1 1 0 1 1 1 (-9) + 0 0 0 0 1 0 0 0 + (+8) 1 1 1 1 1 1 1 1 (-1) 注意:注意:和是和是-1的补码表示法的补码表示法(2)正数和负数相加例如,例如,-3与与-4相加相加 1 1 1 1 1 1 0 1 (-3) + 1

35、 1 1 1 1 1 0 0 +(-4) 1 1 1 1 1 1 0 0 1 (-7) 丢掉最后的进位丢掉最后的进位 注意:注意:能用能用8 8位表示的最大负数是位表示的最大负数是-128。 例如,例如,-120 加加 -18 1 0 0 0 1 0 0 0 (-120) + 1 1 1 0 1 1 1 0 + (-18) 1 0 1 1 1 0 1 1 0 -138 注意:注意:和的符号位是和的符号位是0 0。 (3)负数相加(4)溢出的判断 1. 进位与溢出:进位与溢出:进位是指运算结果的最高位向更高位的进位,用来判进位是指运算结果的最高位向更高位的进位,用来判断无符号数运算结果是否超出了

36、计算机所能表示的最大无断无符号数运算结果是否超出了计算机所能表示的最大无符号数的范围。符号数的范围。溢出是指带符号数的补码运算的溢出,用来判断带符溢出是指带符号数的补码运算的溢出,用来判断带符号数补码运算结果是否超出了补码所能表示的范围。号数补码运算结果是否超出了补码所能表示的范围。2. 溢出的判断:溢出的判断: 若若OF=1,结果溢出。若,结果溢出。若OF=0,则结果未溢出。,则结果未溢出。CFDFDFCFOFl例例 设有两个操作数设有两个操作数x x=01000100B=01000100B,y y=01001000B=01001000B,将这两个,将这两个操作数送运算器做加法运算,试问:操

37、作数送运算器做加法运算,试问: 若为无符号数,计算结果是否正确?若为无符号数,计算结果是否正确? 若为带符号补码数,计算结果是否溢出?若为带符号补码数,计算结果是否溢出?解解: l若为无符号数,由于若为无符号数,由于CF=0CF=0,说明结果未超出,说明结果未超出8 8位无符号数位无符号数所能表达的数值范围所能表达的数值范围( 0( 0 255 )255 ),计算结果,计算结果10001100B10001100B为无符为无符号数,其真值为号数,其真值为140140,计算结果正确。,计算结果正确。l 若为带符号数补码,由于若为带符号数补码,由于( CF DF ) =1( CF DF ) =1,结

38、果溢出;这,结果溢出;这里也可通过参加运算的两个数的符号及运算结果的符号进里也可通过参加运算的两个数的符号及运算结果的符号进行判断,由于两操作数均为正数,而结果却为负数,因而行判断,由于两操作数均为正数,而结果却为负数,因而结果溢出;结果溢出;+68+68和和+72+72两数补码之和应为两数补码之和应为+140+140的补码,而的补码,而8 8位带符号数补码所能表达的数值范围为位带符号数补码所能表达的数值范围为 128128 +127+127,结果,结果超出该范围,因此结果是错误的。超出该范围,因此结果是错误的。 2. 无符号二进制数减法运算例如,例如,69减减26 0 1 0 0 0 1 0

39、 1 69 - 0 0 0 1 1 0 1 0 - 26 0 0 1 0 1 0 1 1 43 0 1 0 0 0 1 0 1 + 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 1 1 丢掉最后的进位丢掉最后的进位 3.逻辑运算l(1)“与与”运算(运算(AND) “与与” 函数产生两个或两个以上逻辑变量的逻辑积。函数产生两个或两个以上逻辑变量的逻辑积。 A * B = C 即:如果所有输入变量是逻辑即:如果所有输入变量是逻辑1,则其,则其“与与”运算的运算的逻辑积是逻辑逻辑积是逻辑1。如果输入变量中任意一个是逻辑。如果输入变量中任意一个是逻辑0,则逻,则逻辑积是辑积是0。全。全

40、1为为1,有,有0出出0。3.逻辑运算(续)例:把例:把10011101和和11000110相相“与与” 1 * 1 = 1 MSB 0 * 1 = 0 0 * 0 = 0 1 * 0 = 0 1 * 0 = 0 1 * 1 = 1 0 * 1 = 0 1 * 0 = 0 LSB可应用于:清零,判别、屏蔽高字节。可应用于:清零,判别、屏蔽高字节。3.逻辑运算(续)l(2)“或或”运算(运算(OR) “或或”函数产生两个或两个以上逻辑变量的逻辑和。函数产生两个或两个以上逻辑变量的逻辑和。即有即有1出出1,全,全0为为0。 A + B = C A、B表示输入变量,而表示输入变量,而C C表示输出或

41、者表示输出或者“或或”运算的运算的逻辑和。不要把此逻辑和。不要把此“+ +”号和号和 数学的数学的“+ +”号弄混。号弄混。3.逻辑运算(续)例:把例:把10011101和和11000101相相“或或” 1 + 1 = 1 MSB 0 + 1 = 1 0 + 0 = 0 1 + 0 = 1 1 + 0 = 1 1 + 1 = 1 0 + 0 = 0 1 + 1 = 1 LSB 可应用于:可应用于:OR指令组装字节或字。指令组装字节或字。3.逻辑运算(续)l(3)“异或异或”运算(运算(EOR或或XOR) “异或异或”函数执行一种两个逻辑(不是函数执行一种两个逻辑(不是“以上以上”)变)变量之间量之间“不相等不相等”的逻辑测试。的逻辑测试。 即:如果两个逻辑变量相等(都是即:如果两个逻辑变量相等(都是1或或0),),“异或异或”运算的输出或者结果等于逻辑运算的输出或者结果等于逻辑0,如果输入不等(一个,如果输入不等(一个1,另一个另一个0),则输出是逻辑),则输出是逻辑1。 A V B = C3.逻辑运算(续)例:把例:把100111012和和110001012相相“异或异或”。 1 V 1 = 0 MSB 0 V 1 = 1 0 V 0 = 0 1 V 0 = 1 1

温馨提示

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

评论

0/150

提交评论