判断一个整数的二进制形式中有多少个1【位运算】

  • Post author:
  • Post category:其他

方法1

右移操作,和1做与运算,这样如果最后一位为1就加一,否则继续右移

	public static int method(int a) {
		int sum = 0;
		while(a>=1) {
			sum += a&1;
			a>>=1;
		}
		return sum;
	}

方法2

给定一个数,每进行一次n&(n-1)的计算,结果中就会少了一位1。

	public static int method(int a) {
		int sum = 0;

		while (a > 0) {
			a = a & (a - 1);
			sum++;
		}
		return sum;
	}

版权声明:本文为Mason97原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。