4- 二进制算术运算
当两个数码分别表示两个数量大小时,它们可以进行数量间的加、减、乘、除等运算。这种运算称为算术运算。
因电脑和数字设备普遍采用二进制运算,本节只探讨二进制的算术运算。
1. 二进制算术运算的特点
二进制算术运算和十进制算术运算规则基本相同,区别是“逢二进一”。
由上图可见二进制的乘法和除法有以下特点:
二进制的乘法运算可以通过若干次的“被乘数(或0)左移1位”和“被乘数(或0)与部分积相加”这两种操作完成;
二进制数的除法运算能通过若干次的“除数右移1位”和“从被除数或余数中减去除数”这两种操作完成。
如果我们能设法将减法操作转化为某种形式的加法操作,那么加、减、乘、除运算就全部可以用"移位"和"相加"两种操作实现了。为了解决这个问题,计算机引入了原码、反码和补码的概念。
2. 原码、反码、补码和补码运算
二进制数的正、负表示方法通常采用的是在二进制数的前面增加一位符号位。这种形式的数称为原码。符号位为0表示这个数是正数,符号位为1表示这个数是负数。其余各位表示数值。
在做减法运算时,如果两个数是用原码表示的,则首先需要比较两数绝对值的大小,然后以绝对值大的一个作为被减数、绝对值小的一个作为减数,求出差值,并以绝对值大的一个数的符号作为差值的符号。
这个操作过程比较麻烦,而且需要使用数值比较电路和减法运算电路。如果用两数的补码相加代替上述减法运算,则计算过程中就无需使用数值比较电路和减法运算电路了,从而使减法运算器的电路结构大为简化。
补码的原理可参考其他电子书籍,正负数的反码和补码的计算原则如下:
反码:正数的反码等于原码,负数的反码:符号位不变,以下各位按位取反。
补码:正数的补码等于原码,负数的补码:符号位不变,以下各位按位取反,最后加1。一个数补码的补码即为其原码。
例:带符号位二进制数00011010(+26)、10011010(-26)、00101101(+45)、和10101101(-45)的反码和补码。
在计算机系统中,数值一律用补码来表示(存储)。
补码的优点主要有:
使符号位能与数值位部分一起参加运算,从而简化运算规则;
使减法运算转换为加法运算,从而简化计算机中运算电路的设计;
两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃;
补码转换为对应的十进制数时正负数规则一样 ;
0的补码是唯一的。如0的5位补码是00000。