[C#版剑指offer]寻找某数二进制表示下的1的个数

要求找到某个数的二进制表示下1的个数

使用n&(n-1)的方法:

  • n-1:二进制数字n最右边的1变成0,此1右边的0都变成1.
  • n&(n-1):二进制数字n最右边的1变成0.其余不变

public static int FindOne(int n)
        {
            int res = 0;
            while (n != 0)
            {
                res++;
                n &= (n - 1);
            }
            return res;
        }

注意测试时函数中应用的是10进制的数字,在进行&运算时会进行换算。

展开阅读全文

WindowsYOLOv4目标检测实战:训练自己的据集

04-26
©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值