2

我是 C 新手,我无法理解位掩码操作的用法。例如我有以下代码

if((input & 0x08)== 0)
{

 //Do....//

}

我将输入作为 int 值 00000111 ,它是二进制和十六进制的 7 ,但是当我进行此比较时,它的评估结果为 false (从不输入 if 语句)。

这是我的理解和应该发生的事情

          00000111  input
        & 00001000  0x08
         ------------
          00000000  answer

所以我的问题是我怎样才能得到正确的输出。

4

1 回答 1

5
int main(){
        int input = 7;

        if((input & 0x08)== 0)
        {
                printf("Hello!\n");
        }

        return 0;
}

你是对的,这个程序打印“你好!”。

您的代码中一定还有另一个问题。始终尝试创建函数并测试最简单的示例。

尝试打印语句input之前的值。if

希望能帮助到你。

于 2013-01-27T19:23:48.377 回答