2009-11-12 82 views
1
(A Or B) And Not (A And B) 
+0

不是刚刚上床睡觉在430上午。 – ChaosPandion 2009-11-12 17:05:16

+0

在8分钟后能看到60次?看起来好像有人急于抓住简单的代表。 – ChaosPandion 2009-11-12 17:08:29

+1

在您的问题中编辑的'新手'标签可以使您的问题符合您的要求,而不是您。你不必亲自接受,但无论你什么时候睡觉,这个问题都是一个初学者问题。 – 2009-11-12 17:08:50

回答

19

您正在寻找XOR,具体取决于它可能是单一操作的语言。

+0

在你的符号中,那将是:A Xor B – 2009-11-12 17:02:59

+0

应该被编译器/解释器优化成单个操作,我希望! – 2009-11-12 17:03:21

+1

我的大脑今天不工作。 – ChaosPandion 2009-11-12 17:06:13

3

如果你在原子操作中有XOR或平等,是的,它正是前者或后者的否定。

4

是不是只是一个独家或?有时以此语法表示:A^B

+0

我从来没有见过这样的语法。如果你向任何逻辑学家证明了这一点,他们会说这意味着“A和B”:XOR通常在“O”中写为“+”,或通过它在“\”中写为“=”。 – Satanicpuppy 2009-11-12 17:14:26

+3

这是基于C的语法,它是我不需要的东西。 – ChaosPandion 2009-11-12 17:16:17

+0

@Satanicpuppy显然你不是一个C程序员......它是按位异或操作符.....责备K&R! – ennuikiller 2009-11-12 18:29:45

12

它是XOR(请参见下表)。

A B (A|B) (A&B) !(A&B) (A|B)&(!(A&B)) 
T T T  T  F  F 
T F T  F  T  T 
F T T  F  T  T 
F F F  F  T  F

您还可以使用不等于(A != B)

希望这会有所帮助。

+0

语言缺少原生异或操作符的好方法。 – 2009-11-12 17:12:24

+0

我同意,很好的技巧,但我认为它隐藏了表达的意图。 – ChaosPandion 2009-11-12 17:19:05

+0

!=是对这个问题的正确答案。简单而重要。 – Satanicpuppy 2009-11-12 17:21:57

0

正如其他人所说,这是异或。请注意,解决这个问题的最佳方法是使用NawaMan的逻辑表,或者使用Karnaugh map。在EE中,卡诺图更为常见,因为它们更容易使用多输入的复杂表达式。

如果你正在硬件上实现这一点,卡诺图几乎总是最好的方式,因为它们给你实现所需输出所需的最少门数。另外,与软件不同,硬件中可能没有可用的异或门,但每个门可以表示为其他门的组合。 AND可以由NAND等制造,这将增加所需门的数量,但可以降低设备的成本。