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 /* 求补运算 */
上一篇: C语言的数组与函数
下一篇: 排序之一:直接插入排序(C语言实现)