我是C的新手,我很难理解位掩码操作的用法。例如,我有以下代码
if((input & 0x08)== 0)
{
//Do....//
}
我将输入作为int值00000111,二进制和十六进制为7,但是当我进行此比较时,它的计算结果为false(从不输入if语句)。
这是我理解的,应该发生什么
00000111 input
& 00001000 0x08
------------
00000000 answer
所以我的问题是如何才能得到正确的输出。
答案 0 :(得分:5)
int main(){
int input = 7;
if((input & 0x08)== 0)
{
printf("Hello!\n");
}
return 0;
}
你是对的,这个节目打印“你好!”。
您的代码中必定存在其他问题。尝试始终创建函数并测试最简单的示例。
尝试在input
声明之前打印if
的值。
希望它有所帮助。