C++ &引用;不等于;运算符不在if-else语句中工作
我必须检查是否设置了数字的第K位 举例说明我的意思: 输入:N=4,K=0 输出:false 说明:4的二进制表示为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>有更高的优先级,因
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