【问题标题】:AND bitwise operation over addition加法上的 AND 位运算
【发布时间】:2021-10-19 18:22:57
【问题描述】:

我一直在寻找关于这个问题的一段时间,但我找不到任何结果。 假设 A、B 和 C 是整数,是否存在函数(算术或布尔)F 和 G 使得:

(A + C)&(B + C) = F(A,B) + G(C)

其中 & 是位运算符 AND。 换句话说,我正在寻找一种让 C 值独立于 A 和 B 的方法。

编辑 这里的“+”是普通的加号,不是OR。

【问题讨论】:

  • 你能举出 2 或 3 个例子来说明你的意思吗?

标签: bit-manipulation bitwise-operators arithmetic-expressions integer-arithmetic bitwise-and


【解决方案1】:

没有。

让我们考虑 A = 0,并且 B 和 C 从 0 和 1 中选择的情况。这是结果表:

B C  output
0 0  0
0 1  1
1 0  0
1 1  0

然后我们问一个问题,是否存在函数 F 和 G 使得 F(B) + G(C) == C & (B + C)。不可能有解决方案,因为前两行暗示G(1) = G(0) + 1(来自F 的贡献不能改变,因为它的参数两次都为零),底部两行暗示G(0) = G(1)(同样因为贡献从F 不能改变,它的论点是两次)。而且我们不能同时拥有它,G(1) = G(0) + 1G(0) = G(1) 不能同时拥有。

除了 A = 0 和 B 和 C 都是二进制之外,还有其他情况,但如果 F 和 G 在一种情况下不能存在,那么所有其他情况都无法“修复”它。

【讨论】:

  • 我明白你的回答,但为什么我们不能是双向的? G(1) = G(0) + 1 和 G(0) = G(1) 并不意味着 G 不存在。我认为这仅意味着 G 可以是多值函数,例如 tan(pi/4)=tan(5pi/4) 并不意味着 tan() 不存在
  • @TahaKhabouss 如果你重新排列一下,你会得到G(0) = G(0) + 1 和其他不一致的地方
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-18
  • 2020-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-24
  • 1970-01-01
相关资源
最近更新 更多