读书人

位演算有关

发布时间: 2012-12-20 09:53:21 作者: rapoo

位运算有关
计算一个整数中位为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);

读书人网 >编程

热点推荐