计算byte表示的二进制数据中,1出现的次数
程序员文章站
2022-03-05 17:01:12
...
无意中看到这个题目,开始想到的是把byte的二进制数据转为一个数组,然后再遍历数组,计算数组中1出现的次数。
感觉这应该是这简单,效率也比较低的做法。
在编程之美上看到如下做法:
把byte数据取2的模,如果余数为1则说明当前位置出现的是1,否则是0,然后不断把byte往右边移位,也就是除以2,
代码如下:
感觉这是一个很不错的思路,记录下。
感觉这应该是这简单,效率也比较低的做法。
在编程之美上看到如下做法:
把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; }
感觉这是一个很不错的思路,记录下。
上一篇: 怎么自学ps技术
下一篇: CSS如何实现背景图像重复效果