1

有一个难题是只用 | 创建一个等效的按位 & 和 ~ 运算符。

我一直在做 | 的蛮力组合 和〜使用6(0110)和5(0101)试图得到4(0100),但我仍然无法得到答案。

可以使用的最大操作数为 8。

有人可以给我提示吗?

4

2 回答 2

4

在这里对您有帮助的是德摩根定律,它基本上说:

~(a & b) == ~a | ~b

因此我们可以否定它并得到:

a & b == ~(~a | ~b)     //4 operations

查看真值表(事实上,上帝保佑二进制逻辑的简单性,只有四种可能的输入组合可以生成适当的输出),我们可以看到两者是等价的(最后两列):

a | b | ~a | ~b | ~a OR ~b | ~(~a OR ~b) | a AND b
--|---|----|----|----------|-------------|--------
0 | 0 |  1 |  1 |     1    |      0      |    0
1 | 0 |  0 |  1 |     1    |      0      |    0
0 | 1 |  1 |  0 |     1    |      0      |    0
1 | 1 |  0 |  0 |     0    |      1      |    1
于 2013-05-12T22:13:39.000 回答
0

真值表时间...

A B A&B !A !B !A|!B !(!A|!B)
0 0  0   1  1   1       0
0 1  0   1  0   1       0
1 0  0   0  1   1       0
1 1  1   0  0   0       1
于 2013-05-12T22:19:42.293 回答