易百教程

使用按位&运算符

AND操作掩码位值。按位屏蔽第六位,使其值在最终计算中重置为0

示例代码

#include <stdio.h>
#define SET 223

char *to_binary(int n);

int main()
{
    int bor,result;

    printf("输入一个在 0 - 255 之间的数字: ");
    scanf("%d",&bor);
    result = bor & SET;

    printf("\t%s\t%d\n",to_binary(bor),bor);
    printf("&\t%s\t%d\n",to_binary(SET),SET);
    printf("=\t%s\t%d\n",to_binary(result),result);
    return(0);
}

char *to_binary(int n)
{
    static char bin[9];
    int x;

    for(x=0;x<8;x++)
    {
        bin[x] = n & 0x80 ? '1' : '0';
        n <<= 1;
    }
    bin[x] = '\0';
    return(bin);
}

编译并执行上面示例代码,得到以下结果:

hema@ubuntu:~/book$ gcc main.c
hema@ubuntu:~/book$ ./a.out
输入一个在 0 - 255 之间的数字: 178
        10110010        178
&       11011111        223
=       10010010        146