在2.4节中我们讨论了逻辑代数的基本概念,介绍了三种最基本的逻辑运算:逻辑与、逻辑或和逻辑非。本节介绍机器指令实现的逻辑运算,我们称这类指令为逻辑机器指令。逻辑机器指令通常在两种情况下会用到。......
2023-11-18
1. 二进制数加法和减法
两个一位二进制数进行加法时只可能有四种情况,即0+0=0,0+1=1,1+0=1,1+1=10。两个多位二进制数进行加法时存在进位,对每位来说,相当于三个一位二进制数进行加法,共有八种情况,即0+0+0=0,0+0+1=1,0+1+0=1,1+0+0=1,0+1+1=10,1+0+1=10,1+1+0=10, 1+1+1=11。
【例2-4】 求10110011+111001。
解:
因此,10110011+111001=11101100。
两个一位二进制数进行减法时只可能有四种情况,即0-0=0,1-0=1,1-1=0,0-1时不够减,需要向高位借位,借位后有10-1=1。
【例2-5】 求110011-11101。
解:
因此,110011-11101=10110。
2.补码
和十进制数四则运算一样,二进制数四则运算也有加、减、乘、除。要在计算机中实现二进制数四则运算,计算机中就应该有加法装置、减法装置、乘法装置和除法装置。我们知道,乘法运算可以用若干次加法运算实现,除法运算可以用若干次减法运算实现。这样,为简化计算机硬件设计的复杂性,硬件就可以不包含乘法装置和除法装置。
是否还可以取掉减法装置呢?回答是肯定的。但要求二进制数采用一种称为补码的表示方法。补码是把二进制的正数和负数表示成一种统一的取掉符号的纯数值形式。
一个二进制数的补码由两部分组成。一部分是数值部分,取值方法为:当二进制数为正数时,其补码的数值部分和该二进制数相同;当二进制数为负数时,其补码的数值部分为用高位为1、低位为0的足够大的二进制数减去该数的差。另一部分是符号位,当二进制数为正数时,符号位为0;当二进制数为负数时,符号位为1。
按照补码的定义,得到正数的补码方法非常简单,例如,正数1011的补码就是01011,前面最高位的0表示原二进制数为正数。而得到负数的补码方法稍为复杂一些。
【例2-6】 求﹣1011的补码。
解:补码的数值部分为:
因此,﹣1011的补码为10101,前面最高位的1是补码的符号位。
实际上,计算机实现时有非常简单的直接把一个二进制数表示为补码的方法。具体方法是:当二进制数为正数时,其补码的数值部分和该二进制数相同,符号位为0;当二进制数为负数时,其补码的数值部分为先把该二进制数各位的0变为1,1变为0,然后再加1,符号位为1。如例2-6中的﹣1011的补码求法是:
第一步:求反,1011变为0100。
第二步:加1,0100+1=0101。
所以,﹣1011的补码为10101,这和例2-6求出的结果相同。
表2-2给出了长度为2的二进制数的补码。表2-3给出了长度为3的二进制数的补码。
表2-2 长度为2的二进制数的补码
表2-3 长度为3的二进制数的补码
3. 补码的运算
对于补码来说,不仅两个二进制数的加法运算可以用补码的加法来实现,而且两个二进制数的减法运算也可以用补码的加法来实现。补码运算不仅用加法实现了减法,而且实现了正号和负号的数字化表示。补码运算的基本公式是:(www.chuimin.cn)
[x+y]补=[x]补+[y]补
上式表示,两个二进制数相加后的补码等于这两个二进制数分别求补码后再相加。这个公式的证明并不难,有兴趣的读者可自己证明。
【例2-7】 用补码求1001+0011。
解:
可见,补码加法和二进制加法得到的结果相同。
【例2-8】 用补码求1001-1011。
解:减去一个数等于加上该数的负数,因此可把减数表示为负数。
可见,补码加法和二进制减法得到的结果相同。
【例2-9】 用补码求﹣1000-0011。
解:
可见,补码加法和两个二进制负数相加得到的结果相同。
从上面的例子可见,补码有两个重要特点:
(1)二进制的加法运算和减法运算都转换成了补码的加法运算。
(2)符号位直接参加运算。
因此,计算机中是用补码加法运算代替二进制数的加法和减法运算的。
当用补码求出运算结果后,把补码再变为二进制数的方法是:当符号位为0时,相应的二进制数为正数,其数值部分为该补码的数值部分,例如,补码00011的二进制数为+0011;符号位为1时,相应的二进制数为负数,其数值部分为再次对该补码的数值部分求补码的结果,例如,补码10101的二进制数为﹣1011。
这样,对于数值的四则运算来说,可以用只包含加法操作的一个算法来实现乘法,用只包含减法操作的一个算法来实现除法,用补码编码方法来实现减法。这样,计算机硬件只需设计出实现两个二进制数相加的加法器,就可以实现算术的四则运算。
输入和输出过程的计算机实现加法和减法运算的完整过程为:
(1)把用户输入的十进制数转换为二进制数;
(2)把二进制数转换为补码;
(3)实现补码加法;
(4)把补码形式的运算结果转换为二进制数;
(5)把二进制数转换为十进制数输出给用户。
在以上各步骤中,除完成补码加法操作的任务由硬件中的加法器实现外,其余任务一般均用软件实现。
有关计算机导论的文章
在2.4节中我们讨论了逻辑代数的基本概念,介绍了三种最基本的逻辑运算:逻辑与、逻辑或和逻辑非。本节介绍机器指令实现的逻辑运算,我们称这类指令为逻辑机器指令。逻辑机器指令通常在两种情况下会用到。......
2023-11-18
因二进制数1001中从左至右的权值分别为8、4、2、1,所以二进制数1001可表示为1×8+0×4+0×2+1×1。因十进制数和二进制数只是数值的两种不同表示方法,并不表示其本质的改变。因此,十进制数和二进制数之间必然可以相互转换。 求10的二进制数值。......
2023-11-18
实际使用的二进制数可分为二进制整数和二进制实数两种,在计算机内部,分别用定点数和浮点数表示二进制整数和二进制实数。在计算机内部具体表示一个浮点数时,必须指定该浮点数的小数点位置,通常是把所有尾数都看成小数。图2-4 浮点数的格式根据图2-4 的浮点数格式,二进制数﹣0.1001×210在计算机中的浮点数形式就是01011001。目前使用的计算机中表示浮点数的编码长度大都是32位或64位。......
2023-11-18
方法把被减数分解成百位加上一个数的形式,把减数分解成整十数减去补数的形式。用被减数的剩余数字与减数所减的数字相加。把上两步的结果相加,注意进位。例子计算212-28=______首先把被减数分解成200+12的形式,减数分解成30-2的形式。计算百位与整十数的差200-30=170再计算剩余数字与所减数字的和12+2=14结果就是170+14=184所以212-28=184计算105-84=______105=100+5,84=90-6100-90=105+6=1110+11=21所以105-84=21计算925-86=______925=900+25,86=90-4900-90=81025+4=29810+29=839所以925-86=839练习计算458-14=______计算124-47=______计算528-89=______计算154-64=______计算994-89=______计算587-76=______......
2023-10-27
任务描述二进制整数运算有自己的运算法则,与十进制整数运算比较起来相对简单。任务解析本任务要求掌握二进制整数的加减法及逻辑“与”运算,特别是逻辑“与”运算在计算机网络的学习中非常有用。意思是无论0、1,与0相“与”,结果为0;与1相“与”,则结果为原运算数。......
2023-11-21
方法把被减数分解成百位加上一个数的形式,把减数分解成百位加上整十数减去补数的形式。用被减数的百位减去减数的百位,再减去整十数。用被减数的剩余数字与减数所减的数字相加。把上两步的结果相加,注意进位。计算百位与百位和整十数的差500-100-30=370再计算剩余数字与所减数字的和12+2=14结果就是370+14=384所以512-128=384计算806-174=______806=800+6,174=100+80-6800-100-80=6206+6=12620+12=632所以806-174=632计算916-573=______916=900+16,573=500+80-7900-500-80=32016+7=23320+23=343所以916-573=343练习计算528-157=______计算469-418=______计算694-491=______计算382-164=______计算728-409=______计算485-168=______......
2023-10-27
用二进制数也可以很容易进行加、减、乘、除的算术运算。用电子技术处理二进制数,与传统的模拟电路的处理方法有很大不同。由于二进制数是只有“1”和“0”的两值逻辑变量,它必须用数字逻辑电路处理,数字逻辑电路是计算机组成的硬件基础。这种由计算机发展而带来的数字化,其影响绝不止仅限于计算机领域,它对通信传输也产生了巨大的影响。......
2023-11-07
不像字符和汉字表示方法有统一的国际标准,图像的表示方法比较杂乱,还未形成统一的国际标准。目前图像的表示方法主要有两大类:位图和矢量图。对于黑白图像,像素点值为0表示白色,像素点值为1表示黑色。造成位图方法表示的图像放大失真的原因是,该方法用像素点的集合表示图像,当图像放大时,像素点间的空隙就被等比例的放大,从而造成失真。矢量图是用直线和弧线的集合表示图像的。......
2023-11-18
相关推荐