java中位运算符的使用

<<(左位移运算符)

‘a << n’ 符号的作用是将 a 的所有二进制位全部向左移n位,右边补0。a和n必须为整数

a <<= n;即a = a << n;从运行结果看,相当于a = a * Math.pow(2,n);即a与2的n次方的乘积赋值给a 例:index <<= 1;相当于 index = index * 2;位运算效率高

>>(右位移运算符)

解释与<<相似

例:a >> 1;相当于 a / 2

^(异或运算)

运算规则是:两个数转为二进制,然后从高位开始比较,如果相同则为0,不相同则为1。

比如:8^11.

8转为二进制是1000,11转为二进制是1011.从高位开始比较得到的是:0011.然后二进制转为十进制,就是Integer.parseInt("0011",2)=3;

应用案例:实现两个整型数的交换 int a = 111; int b = 222; System.out.println("a = " + a + ", b = " + b); a ^= b; // a = a ^ b b ^= a; // b = b ^ a a ^= b; // a = a ^ b System.out.println("a = " + a + ", b = " + b);

奇数判断

int a = -2;
        int b = -1;
        int c = 0;
        int d = 1;
        int e = 2;
        Log.d("奇数判断",  a + "是奇数:" + ((a & 1) == 1));
        Log.d("奇数判断",  b + "是奇数:" + ((b & 1) == 1));
        Log.d("奇数判断",  c + "是奇数:" + ((c & 1) == 1));
        Log.d("奇数判断",  d + "是奇数:" + ((d & 1) == 1));
        Log.d("奇数判断",  e + "是奇数:" + ((e & 1) == 1));
经验分享 程序员 微信小程序 职场和发展