C++ &引用;不等于;运算符不在if-else语句中工作

C++ &引用;不等于;运算符不在if-else语句中工作,c++,if-statement,bit-manipulation,C++,If Statement,Bit Manipulation,我必须检查是否设置了数字的第K位 举例说明我的意思: 输入:N=4,K=0 输出:false 说明:4的二进制表示为b'100,其中未设置LSB的第0位,因此返回false 此代码不适用于“不等于”语句: bool checkthbit(int n,int k) { 如果(n&(1如果你把方程放在括号里,它会做你想要的: bool checkA(整数n,整数k){ 如果(n)(这是什么语言?请添加相关的标记。对于C或C++,检查编译器警告:!= < /COD>比和/Cudi>有更高的优先级,因

我必须检查是否设置了数字的第K位

举例说明我的意思:

输入:N=4,K=0

输出:false

说明:4的二进制表示为
b'100
,其中未设置LSB的第0位,因此返回false

此代码不适用于“不等于”语句:

bool checkthbit(int n,int k)
{

如果(n&(1如果你把方程放在括号里,它会做你想要的:

bool checkA(整数n,整数k){

如果(n)(这是什么语言?请添加相关的标记。对于C或C++,检查编译器警告:<代码>!= < /COD>比和/Cudi>有更高的优先级,因此,如果(进一步考虑<代码> Boo-CuthkthBIT(int n,int k){返回n &(1)),则希望编写<代码>。
checkA(int, int):
        mov     eax, 1
        mov     ecx, esi
        sal     eax, cl
        test    eax, eax
        setne   al
        movzx   eax, al
        and     eax, edi
        ret

checkB(int, int):
        mov     ecx, esi
        sar     edi, cl
        mov     eax, edi
        and     eax, 1
        ret

checkC(int, int):
        mov     ecx, esi
        sar     edi, cl
        mov     eax, edi
        and     eax, 1
        ret