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

方法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;
	}
发布了58 篇原创文章 · 获赞 0 · 访问量 990

猜你喜欢

转载自blog.csdn.net/Mason97/article/details/104518664