一些处理器使用单个的命令进行计算，另外一些根据数据位向量使用并行运算进行处理。对于没有这些特性的处理器来说，已知的最好解决办法是按照树状进行相加。例如，要计算二进制数A=0110110010111010中1的个数，这些运算可以表示为：这里的运算是用C语言表示的，所以X » Y表示X右移Y位，X & Y表示X与Y的位与，+表示普通的加法。基于上面所讨论的思想的这个问题的最好算法列在这里：在最坏的情况下，上面的实现是所有已知算法中表现最好的。但是，如果已知大多数数据位是0的话，那么还有更快的算法。这些更