位运算统计二进制位为1的个数
代码来自 go程序设计语言 2.6.2示例,init()方法会初始化一个 256 容量的byte数组,一个byte为8位,统计时可以对于二进制按每8位进行统计,init()方法初始化后会得到一个 0~255范围内数字和位数对应的值,比如 0-0 1-1 2-1 3-2 …,利用这个数组来实现对二进制数每8位的一个统计。
package popcount
var pc byte[256]
func init() {
for i,_ := range pc {
pc[i] = pc[i/2] + byte