按位运算产生意外输出

Deb*_*aha 0 c bitwise-operators bitwise-and

#include<stdio.h>
int main(void)
{
    int a=0x11;
    printf("\n %d",a);
    int b=10;
    int c=(a&b);
    printf("\t %d",c);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这个程序的o/p是

17 0

但是我希望程序能够对比特进行操作

17 16

为什么输出为0?

Sou*_*osh 5

在您的情况下,b具有十进制值10,而不是十六进制 10.更改

 int b=10;
Run Code Online (Sandbox Code Playgroud)

 int b=0x10;
Run Code Online (Sandbox Code Playgroud)