C++中(n和1<b)的意义 在引用一个CdECHF中的某人编写的C++代码来解决某个特定问题时,我发现了一个新的方法,至少对于我来说,编写这样的条件语句:如果n和1<P>P< /P>

C++中(n和1<b)的意义 在引用一个CdECHF中的某人编写的C++代码来解决某个特定问题时,我发现了一个新的方法,至少对于我来说,编写这样的条件语句:如果n和1<P>P< /P>,c++,c++14,bitwise-operators,bit-shift,C++,C++14,Bitwise Operators,Bit Shift,这是一个检查,看看在n的二进制表示中位置“b”处的位是打开还是关闭的 if (n & 1 << b) 本质上是 if (n & (1 << b)) 因为 这些是1的值,这是一个检查,以查看n的二进制表示中位置“b”处的位是打开还是关闭的 if (n & 1 << b) 本质上是 if (n & (1 << b)) 因为 这些值是1运算符优先级意味着它是n&1左移b位,得到的结果与将2提高到b的幂次相同


这是一个检查,看看在n的二进制表示中位置“b”处的位是打开还是关闭的

if (n & 1 << b) 
本质上是

if (n & (1 << b)) 
因为


这些是1的值,这是一个检查,以查看n的二进制表示中位置“b”处的位是打开还是关闭的

if (n & 1 << b) 
本质上是

if (n & (1 << b)) 
因为


这些值是1运算符优先级意味着它是n&1左移b位,得到的结果与将2提高到b的幂次相同。@Ryan:这意味着它先左移,然后右移。这就是我想澄清的。它将1移到左边的b位,然后&’是n的结果@奥默:好的。现在清楚了。谢谢大家的回答。运算符优先级意味着它是n&1向左移动1个b位,得到的结果与将2提高到b的幂次相同。@Ryan:这意味着它先向左移动,然后向右移动。这就是我想澄清的。它将1移到左边的b位,然后&’是n的结果@奥默:好的。现在清楚了。谢谢大家的回答。是的。。。现在一切都清楚了。非常感谢Omer的详细解释是的。。。现在一切都清楚了。非常感谢Omer的详细解释。