有两个数字 a 和 b,都是 64 位。
代码:
a = a|b;
if(!(a&b)){ }
现在在上面的场景中,b 的第 34 位是打开的,并且 a 有一些位打开。因此,根据情况 !(a&b) 应该导致 0 但代码进入了错误的 if 循环。问题是 !(a&b) 给出的是 1 而不是 0。有什么原因吗?
有两个数字 a 和 b,都是 64 位。
代码:
a = a|b;
if(!(a&b)){ }
现在在上面的场景中,b 的第 34 位是打开的,并且 a 有一些位打开。因此,根据情况 !(a&b) 应该导致 0 但代码进入了错误的 if 循环。问题是 !(a&b) 给出的是 1 而不是 0。有什么原因吗?