首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-08-30 
计算byte表示的二进制数据中,1出现的次数无意中看到这个题目,开始想到的是把byte的二进制数据转为一个数组

计算byte表示的二进制数据中,1出现的次数
无意中看到这个题目,开始想到的是把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;    }


感觉这是一个很不错的思路,记录下。

热点排行