4.1 逻辑运算

逻辑运算是指应用在一个二进制位,或者两个位模式上的基本运算。

逻辑运算是计算机的基本运算。

4.1.1 位层次上的逻辑运算

通常以二进制位上的0代表逻辑值“假”,1代表逻辑值“真”

常用的逻辑运算包括:

  • 非(NOT)
  • 与(AND)
  • 或(OR)
  • 异或(XOR)

真值表:逻辑运算对于每一种输入组合的输出值。

非(NOT)

NOT运算符是一元操作符:只有一个输入。
输出位是输入位的相反。
如果输入=0,输出=1
如果输入=1,输出=0

与(AND)

AND运算符是二元运算符,有两个输入。
如果输入都是1,则输出为1
其它三种情况下,输出为0

如果有一个输入为0,则结果必然是0

或(OR)

OR运算符是二元运算符,有两个输入。
如果输入都是0,则输出为0
其它三种情况下,输出为1

如果有一个输入为1,则结果必然是1

异或(XOR)

XOR运算符是二元运算符,有两个输入。
输入相同时,输出为0
输入不相同时,输出为1

如果输入为1,结果就与另一个输入相反

4.1.2 模式层次上的逻辑运算

模式层次上的逻辑运算:
NOT运算就是把NOT应用于模式中的每一个位。
其它运算符就是把两个模式中对应的位进行运算。

模式上的AND运算举例

计算 10011000 AND 00101010

            1001 1000    输入1
    AND     0010 1010    输入2
            0000 1000    输出

10011000 AND 00101010 = 0000 1000

4.1.3 逻辑运算的应用

  • 求反

方法:NOT运算

NOT    1001 1000    输入  
       0110 0111    输出

方法:用全1进行XOR

       1001 1000    输入1  
XOR    1111 1111    输入2  
       0110 0111    输出
  • 使指定的位复位(置0,清0)

方法:指定位为0,进行AND运算,通常这种情况称为掩码

       1010 0110    输入  
AND    0000 0111    掩码  
       0000 0110    输出
  • 使指定的位置位(置1)

方法:指定位为1,进行OR运算,通常这种情况称为掩码

       1010 0110    输入  
OR     1111 1000    掩码  
       1111 1110    输出
  • 使指定的位反转

方法:指定位为1,进行XOR运算,通常这种情况称为掩码

       1010 0110    输入  
XOR    1111 1000    掩码  
       0101 1110    输出

4.1.4 逻辑运算应用总结

NOT:全模式反转

AND:0:清0;1:不变

OR:0:不变;1:置1

XOR:0:不变;1:反转

真值表: