思路: (1)需要考虑负数,对于负数,最高位为1,而负数在计算机是以补码存在的,往右移,符号位不变,符号位1往右移 (2)对于一般的整数,使用a=a&(a-1),这是因为使用a&(a-1),就会发现除了最靠右的 1 置零后,其他的高位的 1 没有发生变化,每运行一次,就可以知道有一个 1 def count(a): num=0 if a<0: a= a & 0xffffffff while a!=0: a=a&(a-1) num+=1 return num
统计一个整数的二进制中1的个数
最新推荐文章于 2022-07-29 16:08:44 发布