1、异或运算
定义:在java的位运算符中有一个异或的运算符,用符号(^)表示,其运算规则是:在两个二进制操作数的相同位中,相同则结果为0,不同则结果为1。
异或运算有三个特征:
1、一个是0与一个数做异或操作还是本身;
2、本身与本身做异或操作为0;
3、异或操作还满足交换率;
2、与运算
定义:在两个二进制操作数的相同位中,两个操作数中位都为1,结果才为1,否则结果为0。
特征:
1、根据与运算定义,设二进制数字n ,则有:
- 若n&1=0,则n二进制最右一位为0;
- 若n&1=1,则二进制最右一位为1。
2、(n-1)解析: 二进制数字n最右边的 1变成 0,此 1右边的 0都变成 1。
n&(n-1):二进制n最右边的1变成0,其余不变。