软件设计师考试知识点:逻辑运算
在计算机中,运算可以分为算术运算和逻辑运算。二进制数1和0在逻辑上可以代表"真"与"假"、"是"与"否"、"有"与"无".这种具有逻辑属性的变量就称为逻辑变量,逻辑变量之间的运算称为逻辑运算。
逻辑运算与算术运算的主要区别是:逻辑运算是按位进行的,位与位之间不像加减运算那样有进位或借位的联系。
逻辑运算主要包括4种基本运算,分别是逻辑加法(或运算)、逻辑乘法(与运算)、逻辑否定(非运算、否运算)和异或运算(半加运算)。
1.逻辑加法
逻辑加法通常用符号"+"或"∨"来表示。逻辑加法运算规则如下:
0+0=0. 0∨0=0
0+1=1. 0∨1=1
1+0=1. 1∨0=1
1+1=1. 1∨1=1
对于逻辑加法,在给定的逻辑变量中A和B中,只要有一个为1.其逻辑加的结果就为1.只有两者都为0时,逻辑加的结果才为0.
例如,某逻辑电路有两个输入端分别是X和Y,其输出端为Z.当且仅当两个输入端X和Y同时为0时,输出Z才为0.则该电路输出Z的逻辑表达式为X+Y.
2.逻辑乘法
逻辑乘法通常用符号"×"或"∧"或"·"来表示。逻辑乘法运算规则如下:
0×0=0. 0∧0=0. 0·0=0
0×1=0. 0∧1=0. 0·1=0
1×0=0. 1∧0=0. 1·0=0
1×1=1. 1∧1=1. 1·1=1
对于逻辑乘法,当参与运算的逻辑变量都同时取值为1时,其逻辑乘积才等于1.只要有一个逻辑变量为0.其结果就为0.
例如,用二进制数0与累加器X的内容进行与运算,并将结果放在累加器X中,一定可以完成对X的"清0"操作。
3.逻辑否定
逻辑非的规则为把变量取反,即:

,

4.异或运算
异或运算通常用符号"⊕"表示,其运算规则为:
0⊕0=0.0⊕1=1.1⊕0=1.1⊕1=0
也就是说,只有两个逻辑变量相异(一个为0.另一个为1),结果才为1.如果两个逻辑变量相同,则结果为0.
例如,在进行定点原码乘法运算时,乘积的符号位是被乘数的符号位和乘数的符号位通过异或运算来获得。因为原码的符号位表示数的正负,0表示正数,1表示负数。被乘数和乘数都是正数时,值为正数;都为负数时,值也为正数;只有当一个数是正数,另一个数是负数时,值才为负数。
我们在前面所举的例子都是一位数的操作,事实上,多位数进行逻辑运算时,也是按照"逐位运算"的规则进行的。例如,8位累加器A中的数据为FCH,若将其与7EH相异或,则累加器A中的数据为82H.因为将FCH和7EH转换为二进制数,得到11111100和01111110.根据异或的运算规则,可以得到10000010.然后将10000010转换成十六进制,得到82H。