对于此问题,《编程之美》中给出了五种解法,但是实际上还有更高效的算法。
可以利用分治的方法解决这个问题。
例如,要计算二进制数 A=0110110010111010 中 1 的个数,这些运算可以表示为:
符号 | 二进制 | 十进制 | 注释 |
A | 0110110010111010 | 原始数据 | |
B = A & 01 01 01 01 01 01 01 01 | 01 00 01 00 00 01 00 00 |
对于此问题,《编程之美》中给出了五种解法,但是实际上还有更高效的算法。
可以利用分治的方法解决这个问题。
例如,要计算二进制数 A=0110110010111010 中 1 的个数,这些运算可以表示为:
符号 | 二进制 | 十进制 | 注释 |
A | 0110110010111010 | 原始数据 | |
B = A & 01 01 01 01 01 01 01 01 | 01 00 01 00 00 01 00 00 |