`
zhangyou1010
  • 浏览: 299925 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • java
阅读更多
无意中看到这个题目,开始想到的是把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;
    }


感觉这是一个很不错的思路,记录下。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics