首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >操作逐位操作

操作逐位操作
EN

Stack Overflow用户
提问于 2013-05-13 06:05:26
回答 2查看 179关注 0票数 1

这里有一个难题,那就是如何创建一个等价的逐位运算&只使用|和~运算符。

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

最多可使用8次操作。

有没有人能给我点提示?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-13 06:13:39

这里对你有帮助的是,它基本上是这样的:

代码语言:javascript
复制
~(a & b) == ~a | ~b

因此,我们可以直接否定这一点,并得到:

代码语言:javascript
复制
a & b == ~(~a | ~b)     //4 operations

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

代码语言:javascript
复制
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
票数 4
EN

Stack Overflow用户

发布于 2013-05-13 06:19:42

真值表时间..。

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16512504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档