1.2 微型计算机运算基础

上传人:小** 文档编号:89111854 上传时间:2019-05-18 格式:DOC 页数:26 大小:574KB
返回 下载 相关 举报
1.2 微型计算机运算基础_第1页
第1页 / 共26页
1.2 微型计算机运算基础_第2页
第2页 / 共26页
1.2 微型计算机运算基础_第3页
第3页 / 共26页
1.2 微型计算机运算基础_第4页
第4页 / 共26页
1.2 微型计算机运算基础_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《1.2 微型计算机运算基础》由会员分享,可在线阅读,更多相关《1.2 微型计算机运算基础(26页珍藏版)》请在金锄头文库上搜索。

1、1.2 微型计算机运算基础 1.2.1 二进制数的运算方法 电子计算机具有强大的运算能力,它可以进行两种运算:算术运算和逻辑运算。 1二进制数的算术运算 二进制数的算术运算包括:加、减、乘、除四则运算,下面分别予以介绍。(1)二进制数的加法 根据“逢二进一”规则,二进制数加法的法则为: 00001101110(进位为1) 1111 (进位为1) 例如:1110和1011相加过程如下: (2)二进制数的减法 根据“借一有二”的规则,二进制数减法的法则为: 000110101011 (借位为1) 例如:1101减去1011的过程如下: (3)二进制数的乘法 二进制数乘法过程可仿照十进制数乘法进行。

2、但由于二进制数只有0或1两种可能的乘数位,导致二进制乘法更为简单。二进制数乘法的法则为:00001100111例如:1001和1010相乘的过程如下: 由低位到高位,用乘数的每一位去乘被乘数,若乘数的某一位为1,则该次部分积为被乘数;若乘数的某一位为0,则该次部分积为0。某次部分积的最低位必须和本位乘数对齐,所有部分积相加的结果则为相乘得到的乘积。 (4)二进制数的除法 二进制数除法与十进制数除法很类似。可先从被除数的最高位开始,将被除数(或中间余数)与除数相比较,若被除数(或中间余数)大于除数,则用被除数(或中间余数)减去除数,商为1,并得相减之后的中间余数,否则商为0。再将被除数的下一位移

3、下补充到中间余数的末位,重复以上过程,就可得到所要求的各位商数和最终的余数。例如:100110110的过程如下: 所以,100110110110余10。 2二进制数的逻辑运算 二进制数的逻辑运算包括逻辑加法(“或”运算)、逻辑乘法(“与”运算)、逻辑否定(“非”运算)和逻辑“异或”运算。 (1)逻辑“或”运算 又称为逻辑加,可用符号“”或“”来表示。逻辑“或”运算的规则如下: 000或000011或011101或101111或111可见,两个相“或”的逻辑变量中,只要有一个为1,“或”运算的结果就为1。仅当两个变量都为0时,或运算的结果才为0。计算时,要特别注意和算术运算的加法加以区别。 (2

4、)逻辑“与”运算 又称为逻辑乘,常用符号“”或“ ”或“”表示。“与”运算遵循如下运算规则:010或010或010100或100或100111或111或111可见,两个相“与”的逻辑变量中,只要有一个为0,“与”运算的结果就为0。仅当两个变量都为1时,“与”运算的结果才为1。 (3)逻辑“非”运算 又称为逻辑否定,实际上就是将原逻辑变量的状态求反,其运算规则如下: 可见,在变量的上方加一横线表示“非”。逻辑变量为0时,“非”运算的结果为1。逻辑变量为1时,“非”运算的结果为0。 (4)逻辑“异或”运算 “异或”运算,常用符号“”或“”来表示,其运算规则为: 000 或 000011 或 011

5、101 或 101110 或 110可见:两个相“异或”的逻辑运算变量取值相同时,“异或”的结果为0。取值相异时,“异或”的结果为1 以上仅就逻辑变量只有一位的情况得到了逻辑“与”、“或”、“非”、“异或”运算的运算规则。当逻辑变量为多位时,可在两个逻辑变量对应位之间按上述规则进行运算。特别注意,所有的逻辑运算都是按位进行的,位与位之间没有任何联系,即不存在算术运算过程中的进位或借位关系。下面举例说明。 【例1.1】 如两变量的取值 X00FFH,Y5555H求Z1XY;Z2XY;Z3;Z4XY的值。 解:X0000000011111111Y0101010101010101则:Z1000000

6、00010101010055H Z2010101011111111155FFH Z31111111100000000FF00H Z4010101011010101055AAH电子计算机算术运算及逻辑运算规则见表1.4。表1.4 二进制数运算规则一览表 1.2.2 数在计算机中的表示 在计算机中要处理的数有无符号数和有符号数。这些数在计算机中是如何表示的呢? 1无符号数 所谓无符号数,通常表示一个数的绝对值,即数的各位都用来表示数值的大小。一个字节(8位)二进制数只能表示0255范围内的数。因此,要表示大于255的数,必须采用多个字节来表示,它的长度可以为任意倍字节长,其数据格式如图1.1所示。

7、 图1.1 无符号二进制数表示格式 2有符号数 所谓有符号数,即用来表示一个任意位长的正数或负数。我们知道,在普通数字中,区分正负数是在数的绝对值前面加上符号来表示,即“”表示正数,“”表示负数。在计算机中数的符号也数码化了,即用一位二进制数位来表示符号。一般是,用一个数的最高位来表示符号位,用“0”表示正号,用“1”表示负号,而其余位为数值位。其数据格式如图1.2所示。 图1.2 有符号二进制数表示格式 3有符号数的原码、反码、补码及补码运算 带正、负号的二进制数称为数的真值表示。例如:X1010110Y0110101为了运算方便,在计算机里的有符号数,有三种表示方法,即原码、反码和补码,称

8、为机器数。(1)原码 正数的符号位用“0”表示,负数的符号位用“1”表示,其余数字位表示数值本身,这种表示法称为原码。例如:上例中 X原01010110Y原10110101对于0,可以认为它是0,也可以认为它是0。因此在原码中,0有下列两种表示: 0原000000000原10000000原码表示数的方法很简单,只需要在真值的基础上,将符号位用数码“0”和“1”表示即可。但采用原码表示的数在计算机中进行加减运算时很麻烦。如:遇到两个异号数相加,或两个同号数相减时,就要用减法运算。为了把减法运算转变成加法运算,则引入了反码和补码。 (2)反码 在原码表示的基础上很容易求得一个数的反码。正数的反码与

9、原码相同,而负数的反码则是在原码的基础上,符号位不变(仍为1),其余数位按位求反,即01,10。例如:上例中 X反01010110Y反11001010而:0反000000000反11111111(3)补码 一个数的补码也很容易求得。如果是正数,补码同原码也同反码,如果是负数,则在反码的基础上最末位加1。例如:上例中 X补01010110X反X原 Y补11001011注:补码中0只有一种表示,无正负之分,即: 0补0补00000000不难证明,补码具有如下特性: X补补X原 用8位二进制数来表示无符号数及有符号数的原码、反码、补码时的对应关系见表1.5。表1.5 用8位二进制数来表示无符号数及有

10、符号数的原码、反码、补码时的对应关系 由表1.5可知,用8位二进制数,表示无符号数为0255;表示原码为127127;表示反码为127127;表示补码为128127。 (4)补码运算 两个用补码表示的带符号数进行加减运算时,特点是把符号位上表示正负的“1”和“0”也看成数,与数值部分一同进行运算,所得的结果也为补码形式,即结果的符号位为“0”,表示正数,结果的符号位为“1”表示负数。下面分加、减两种情况予以讨论。 两个带符号的数X和Y进行相加时,是将两个数分别转换为补码的形式,然后进行补码加运算,所得的结果为和的补码形式。即:XY补X补Y补 【例1.2】 用补码进行下列运算 (18)(15);

11、(18)(15);(18)(11)解: 由例1.2可知:当带符号的数采用补码形式进行相加时,可把符号位也当作普通数字一样与数值部分一起进行加法运算,若符号位上产生进位时,则自动丢掉,所得的结果为两数之和的补码形式。如果想得到运算后原码的结果,可对运算结果再求一次补码即可。 两个带符号数相减,可通过下面的公式进行: XYX(Y) 则XY补X(Y)补X补Y补 可见:求XY补,可以用X补和Y补相加来实现。这里关键在于求Y补。如果已知Y补,那么对Y补的每一位(包括符号位)都按位求反,然后再在末位加1,结果即为Y补。(证明从略)。一般称Y补为对Y补的“变补”,即Y补变补Y补;已知Y补求Y补的过程叫变补。

12、 这样一来,求两个带符号的二进制数之差,可以用“减数(补码)变补与被减数(补码)相加”来实现。这是补码表示法的主要优点之一。 【例1.3】 用补码进行下列运算: 9619; (56)(17)解: X96,Y19 则X补01100000Y补00010011Y补11101101故 XY补XY原0100110177 X56,Y17, 则 X补11001000Y补11101111Y补00010001则 XY补11011001故 XY原 XY补补1010011139综上所述,对于补码的加、减运算可用下边一般公式表示: XY补X补Y补 (都小于2n+1) (5)溢出判断 当两个有符号数进行补码运算时,若运

13、算结果的绝对值超出运算装置容量时,数值部分就会发生溢出,占据符号位的位置,导致错误的结果。这种现象通常称为补码溢出,简称溢出。这和正常运算时符号位的进位自动丢失在性质上是不同的。下面举例说明。例如:某运算装置共有五位,除最高位表示符号位外,还有四位用来表示数值。先看下面两组运算。 计算137? 十进制运算二进制补码运算 计算(4)(4)? 十进制运算二进制补码运算 的运算结果显然是错误的,因为两个正数相加不可能得到负数的结果,产生错误的原因是由于两个数相加后的数值超出了加法装置所允许位数(数值部分4位,可以表示的最大数值为2416),因而从数值的最高位向符号位产生了进位,或说这种现象是由于“溢出”而造成的。 的结果显然是正确的,由符号位产生的进位自动丢失。为了保证运算结果的正确性,计算机必须能够判别出是正常进位还是发生了溢出错误。微机中

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号