欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

计算byte表示的二进制数据中,1出现的次数

程序员文章站 2022-03-05 17:01:12
...
无意中看到这个题目,开始想到的是把byte的二进制数据转为一个数组,然后再遍历数组,计算数组中1出现的次数。

感觉这应该是这简单,效率也比较低的做法。

在编程之美上看到如下做法:

把byte数据取2的模,如果余数为1则说明当前位置出现的是1,否则是0,然后不断把byte往右边移位,也就是除以2,

代码如下:

public static int countByte(byte b)
    {
        int count = 0;
        while (b > 0)
        {
            if (b % 2 == 1)
            {
                ++count;
            }
            b = (byte)(b / 2);
        }
        return count;
    }


感觉这是一个很不错的思路,记录下。
相关标签: 数据结构和算法