当两个二进制数码表示数量大小时,它们之间可以进行数值运算,这种运算称为算术运算,规则与十进制数基本相同,差别仅在于进(借)位规律的不同。在二进制数运算中,进位时“逢二进一”,借位时是“借一当二”。二进制数有下列基本数值运算关系式:
下面举例说明二进制加、减运算:
在数字系统(如计算机)中乘法运算一般用加法运算做,即被乘数自身连续相加,相加的个数等于乘数;除法运算可用减法运算来做,即从被除数中不断减去除数,所减的次数就是商,剩下不够减的部分就是余数。
由以上分析可知,数值的四则运算可以通过加、减法进行,而若能把减法也变为加法,运算形式就单一化了。而数字系统中正是这样做的。
如何实现减法变加法呢?以时钟为例:把时针从8拨到5,既可以逆时针后拨(减法)3小时,也可以顺时针前拨(加法)9小时,因为表盘的最大读数为12,任一读数加12后仍为原值:
这里,称12为模,-3叫原码,9是-3的补码,由原码(-3)加模(12)求得。这个例子表明,运用补码运算可以把减法运算变成加法运算,即在运算时必须把参与运算的数变为补码形式,然后相加,其和也为补码形式。补码运算的基本步骤如下:
1)找到运算的模数——最高位
n位二进制数其运算模数为2n。这是因为实际数字系统中一个加法器电路的位数n总是确定的,运算中若出现向最高位以上的进位必然被舍去(称为溢出)。例如4位二进制数,其模为24=(10000)2,其最高位1不可能在电路中表示出来,而低4位全是0,所以任何4位二进制数加其模数仍为原4位二进制数。
2)运算数变为补码形式(www.xing528.com)
二进制数的补码是这样定义的:最高位为符号位,正数为0,负数为1;正数的补码和它原码相同(正数加模不变);负数的补码将其原码逐位求反得到其反码(这种逐位求反的运算在数字电路中很容易实现),然后在最低位加1求得(由负数加模可得)。
3)运算时符号位和数值位一起参加运算
用补码运算后的和数仍是补码形式,若结果是正数,和数的大小直接表示和数的值;若和数是负数,必须对和数求一次补码才能得到该负数的值。
如何判断运算的结果(补码)是正数还是负数呢?可以从补码的最高位看出,当最高位为“0”时,表示是一个正数的补码,也就是该正数原码;当最高位为“1”时,表示是一个负数的补码。也就是说,带符号数的补码运算结果的最高位也是符号位。
需要说明的是,若符号位不参加运算,则补码求和后当最高位为“1”时,表示是一个正数的补码,也就是该正数原码;当最高位为“0”时,表示是一个负数的补码。
【例2.1】 设A1=0111,A2=0011,试求:(1)A1-A2;(2)A2-A1。
解:(1)A1-A2=(A1)补+(-A2)补=(00111)+(11101)=(00100)
最高位为0,所以其差值是一个正数,差值(0100)2=(4)10
(2)A2-A1=(A2)补+(-A1)补=(00011)+(11001)=(11100)
最高位为1,所以其差值是一个负数,
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。