C操作符练习2014-05-11 csdn博客 myCafe_XuoaiJTask1:二进制位操作符#include <stdio.h>#define PRINT(int) printf(#int " = %d
",int)int main(void){int x,y,z;/* 优先级:位运算符中:& > | 位运算符& > 逻辑运算符&& */x = 03; y = 02; z = 01;PRINT(x | y & z); //0011 | 0000 = 3PRINT(x | y & ~ z); //0011 | 0010 = 3PRINT(x ^ y & ~ z); //0011 ^ 0010 = 1PRINT(x & y && z); //2 && 1 = 1x = 1; y = -1;PRINT(! x | x); //((!x) | x)=false | x = 1// http://www.bianceng.cnPRINT(~ x | x); //1111 = -1PRINT(x ^ x); //0001 ^ 0001 = 0x <<= 3;PRINT(x); //左移n位效果上看成乘以n个2 = 8y <<= 3;PRINT(y); //………………………………&hellip ;= -8y >>= 3;PRINT(y); //右移n位效果上看成除以n个2 = -1return 0;}输出结果:x | y & z = 3x | y & ~ z = 3x ^ y & ~ z = 1x & y && z = 1! x | x = 1~ x | x = -1x ^ x = 0x = 8y = -8y = -1