输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 1234567891011121314 /** * 考虑有负数的存在,右移操作应该采用无符号右移,即高位通过0补齐。 * 同时,只要n=0,就可以结束循环了。 **/public class Solution { public int NumberOf1(int n) { int num = 0; while (0 != n) { num += n & 1; n = n >>> 1; } return num; }} 赞微海报分享
近期评论