位运算

  本人水平有限,题解不到为处,请多多谅解

本蒟蒻谢谢大家观看

 

1:右移如 :x>>y   右移相当于在x这个数的数下加一个小数点,小数点后有无数个0,然后将小数点y个0向右移到小数点

其等价于 x/(2^y)   ==x除以2的y次方;

2 : 左移如 :x<<y   左移相当于在x这个数的数下加一个小数点小数点后有无数个0然后将小数点y个0向左移到小数点

其等价于 x*(2^y)   ==x乘以2的y次方;

3:与运算 &:  5 & 6 == 101(2)& 110(2) == 100(2) 意思是将当前要的两个数转化为二进制数后,如果当前位上的值都为1当前位的值

为1,否则当前位上的值为0;(按位运算

4:或运算 | :  5 | 6 == 101(2)| 110(2)== 111(2)意思是将当前要的两个数转化为二进制数后,如果当前位上的值都为0当前位的值

0,否则当前位上的值为1;(按位运算)

5:非运算 ~ :5 ~ ==101(2)~ == 010(2) 意思是将当前要的数转化为二进制数后,按按位运算

6:异或 ^ : 5 ^ 6 == 101(2)^ 110(2) == 011(2)意思是将当前要异或的两个数转化为二进制数后,相当于不进位的加法,如:1+1=0,

0+1=1 , 1+0=1    或可以这样理解:    如果当前位上的值都不相等,则当前位上的值为1,如果当前位上的值都相等,则当前位上的值为0,              按位运算

注意:移位 的运算优先级 高于 其他的 位运算,其他运算优先级根据实际情况来定……

原文地址:https://www.cnblogs.com/nlyzl/p/11277212.html