剑指offer-二进制中1的个数(Java)

文章目录

问题描述

请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如,把9表示成二进制是1001,有2位是1。因此,如果输入9,则该函数输出为2。

解析

把一个整数减去一,再与原整数做与元算,会把该整数最右边一变为零,则一个二进制中有多少个一就可以进行多少次操作

代码

public int getNumberOf1Bits(int val){
	int count = 0;
	while(val != 0){
		count ++;
		val &= (val-1);
	}
	return count;
}

猜你喜欢

转载自blog.csdn.net/liuzhixiong_521/article/details/83819942