代码之家  ›  专栏  ›  技术社区  ›  Luca

逻辑运算符“A”并不意味着使用“AND”或“XOR”运算符

  •  0
  • Luca  · 技术社区  · 14 年前

    我有两个口罩 一个 ,我想知道 一个 是1,其中 位为0(和viceversa)。

    当然,这可以使用条件语句实现,但我不想迭代/移位来测试位掩码的所有位。

    我需要的逻辑条件没有实现(或者至少,我看不到它)。使用与逻辑门平行的a,我需要运算符“a不表示B”(参见 Wikipedia ).

    是否可以使用AND或XOR运算符实现这种运算符?

    3 回复  |  直到 14 年前
        1
  •  2
  •   erikkallen    14 年前

    根据链接的维基百科,最简单的表达方式是 A and (not B)

        2
  •  1
  •   Guffa    14 年前

    您可以使用:

    异或(非B)

    A xor B
    

    分析:

    A  B  A xor B
    0  0     0
    0  1     1
    1  0     1
    1  1     0
    

    编辑:

    将其更改为一个简单的异或,从而给出问题所要求的结果。也许这个问题的措词不对,因为解决办法似乎太简单了。。。

        3
  •  0
  •   steabert    14 年前

    我想说:

    A AND (A XOR B)
    

    给你一个1,其中a是1,B是0。

    首先你发现A和B的不同之处,然后你与A是1的地方相匹配。