(1)计算一个数二进制形式的位数:
⌊log2(n)⌋+1numOfDigits = lambda n: int(math.log(n, 2)) + 1
(2)计算一个数二进制形式 1 出现的次数;
对 x &= x-1; 进行统计计数
def numOf1(n): cnt = 0 while n: cnt += 1 n &= n-1; return cnt
(3)计算一个数二进制形式 0 出现的次数;
(1)中的结果减去(2)中的结果
numOf0 = lambda n: numOfDigits(n)-numOf1(n)
【笔试/面试】—— 计算一个数二进制形式中 0 的个数
最新推荐文章于 2024-07-11 16:08:52 发布