小编use*_*552的帖子

两个按位运算的等价性

以下两个C函数是等效的:

unsigned f(unsigned A, unsigned B) {
  return (A | B) & -(A | B);
}
unsigned g(unsigned A, unsigned B) {
  unsigned C = (A - 1) & (B - 1);
  return (C + 1) & ~C;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么它们相同?将g它转化为什么规则/变换f

c bit-manipulation integer-arithmetic

2
推荐指数
1
解决办法
446
查看次数

标签 统计

bit-manipulation ×1

c ×1

integer-arithmetic ×1