在阅读《深入理解计算机系统》的时候看到一个非常巧妙的小程序。在这里分享给大家。
long fun_c(unsigned long x)
{
long val = 0;
int i;
for (i = 0; i < 8; i++) {
val += x & 0x0101010101010101;
x >>=1;
}
val += (val >> 32);
val += (val >> 16);
val += (val >> 8);
return val & 0xFF;
}