欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C语言的位运算符

程序员文章站 2022-06-04 11:52:07
位运算符逐位执行操作,包括 与或非,移位,异或 6种 #include int main() { unsigned int a = 60; /* 60 = 0011 11...

位运算符逐位执行操作,包括 与或非,移位,异或 6种

#include 

int main() {
    unsigned int a = 60;    /* 60 = 0011 1100 */
    unsigned int b = 13;    /* 13 = 0000 1101 */
    int c = 0;
    c = a & b;       /* 12 = 0000 1100 */
    printf("line 1 - c 的值是 %d\n", c);
    c = a | b;       /* 61 = 0011 1101 */
    printf("line 2 - c 的值是 %d\n", c);
    c = a ^ b;       /* 49 = 0011 0001 */
    printf("line 3 - c 的值是 %d\n", c);
    c = ~a;          /*-61 = 1100 0011 */
    printf("line 4 - c 的值是 %d\n", c);
    c = a << 2;     /* 240 = 1111 0000 */
    printf("line 5 - c 的值是 %d\n", c);
    c = a >> 2;     /* 15 = 0000 1111 */
    printf("line 6 - c 的值是 %d\n", c);
    return 0;
}
line 1 - c 的值是 12
line 2 - c 的值是 61
line 3 - c 的值是 49
line 4 - c 的值是 -61
line 5 - c 的值是 240
line 6 - c 的值是 15

可以发现

~a = -a - 1   /* 求补运算 */