题目:输入一个整数,输出该数二进制表示中0的个数。其中负数用补码表示。
思路:二进制与1求&,即判断二进制最后一位是否为1,若为1,则跳过,否则计数器+1;然后整数右移一位,直到整数为0。
这个思路还是挺好理解的,就是二进制依次右移,查看最后一位是否为0,是就+1,不然就跳过。
int count_1_num = 0;
while(num != 0) {
if((num&1)!=1)
count_1_num++;
num>>>=1;
}
题目:输入一个整数,输出该数二进制表示中0的个数。其中负数用补码表示。
思路:二进制与1求&,即判断二进制最后一位是否为1,若为1,则跳过,否则计数器+1;然后整数右移一位,直到整数为0。
这个思路还是挺好理解的,就是二进制依次右移,查看最后一位是否为0,是就+1,不然就跳过。
int count_1_num = 0;
while(num != 0) {
if((num&1)!=1)
count_1_num++;
num>>>=1;
}