1、打印二进制:

void print_binary(int a)
{
    int b = sizeof(a)*8;
    for(; a!=0; b--)
    {
        if(b%4 == 0)
        printf(" ");
        printf("%d", (a<0)?1:0);
        a <<= 1;
    }
    puts("");
}

2、设置某一位的值

int a = 3;
//第5位修改为0
a &= ~(1<<4);
// 第5位修改为1
a |= (1<<4);

3、某一位改为相反

// 将第5位取反
int a = 3;
a ^= (1<<4);