位运算有关
计算一个整数中位为1的位数:
public class BitCount {public static int bitCount(int x) {if(x == 0) {return 0;}if(x < 0) {x = -x;}int count = 1;while((x &= (x - 1)) != 0) {count++;}return count;}public static void main(String[] args) {System.out.println(bitCount(0));System.out.println(bitCount(1));System.out.println(bitCount(5));System.out.println(bitCount(7));System.out.println(bitCount(-9));}}不借住额外存储空间交换两个整数的值:
int a = 3, b = 5;System.out.printf("a = %d, b = %d\n", a, b);a = a + b;b = a - b;a = a - b;System.out.printf("a = %d, b = %d\n", a, b);a = a ^ b;b = a ^ b;a = a ^ b;System.out.printf("a = %d, b = %d\n", a, b);