以下两个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?