leetcode 191. Number of 1 Bits

本来想采用最原始的方法来计算,先模2,再除2 ,但是很大位的数字在eclipse中不能运行,说是integer 类型超出界限。

如数字: 2147483648 (10000000000000000000000000000000)

public static int hammingWeight(int n) {
		int count = 0;
		while (n > 0) {
			int Rem = n % 2;
			int Div = n / 2;
			if (Rem == 1)
				count++;
			n = Div;
		}

		return count;
	}

快速的方法应该是利用求与运算,都为1的时候为1 ,其他情况为0.





另外,题目中说的是无符号类型,Unsigned int 类型是不包含负数的,不用考虑负数。

有关 符号数的链接如下: 点击打开链接

一个十进制数字进行二进制的求解方式如下:点击打开链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值