1. 位运算符进行的是二进制的计算,而我们输入的一般是十进制,所以要先将输入的十进制的数转换为二进制再进行运算
例如
#includeint main() { int a=2,b=7; printf("%dn",a^b); return 0; }
上面这段代码的运行结果为5,数字5转化为二进制为101,
a=2转化为二进制为10,b=7转化为二进制为111,所以位运算符是在二进制的情况下运算的
2. 位运算符的类型
~ 按位取反
当数为1时,取0,当数为0时,取1;
& 按位与
当两个数都为1时为1,两个数都为0时为0;
^ 按位异或
当两个数一个为1,一个为0时输出1,两个都为0或者两个都为1时输出0;
| 按位或
当两个数中有一个为1时就输出1,否则就输出0;
>> 将十进制数转化为二进制数后,右移后,再转化为10进制的数
<< 将十进制的数转化为二进制后,左移后,再转化为10进制的数
例如a=2,a的二进制数为10,则a<<1得到a=5,a的二进制数改变为100;
a>>1得到a=1,a的二进制数改变为1;
有错误的地方或者欠缺的地方还请指出;



