看到一段代码,只有三行,看不懂
在 littlefs中看到一段代码,是计算一个数中二进制1的个数,只有三行,但我楞是看不懂。
// Count the number of binary ones in a
static inline uint32_t lfs_popc(uint32_t a) {
a = a - ((a >> 1) & 0x55555555);
a = (a & 0x33333333) + ((a >> 2) & 0x33333333);
return (((a + (a >> 4)) & 0xf0f0f0f) * 0x1010101) >> 24;
}