我试图了解 if 条件如何与按位运算符一起使用。检查数字是偶数还是奇数的方法可以通过以下方式完成:
#include <iostream>
#include <string>
using namespace std;
string test()
{
int i = 8; //a number
if(i & 1)
return "odd";
else
return "even";
}
int main ()
{
cout << test();
return 0;
}
我不明白的部分是 if 条件如何工作。在这种情况下,如果 i = 8,那么它正在执行的 in If 语句1000 & 1
应该返回等于 8 的 1000。
如果 i = 7,那么在 if 语句中它应该111 & 1
返回 111,它等于 7
为什么 if(8) 将返回“偶数”而 if(7) 返回“奇数”?我想我想了解在处理按位运算符时 if 语句正在检查什么是 True 以及什么是 False 。
当我写下这个问题时只是一个想法是因为它实际上在做
for 8: 1000 & 0001 which gives 0
for 7: 0111 & 0001 which gives 1?