티스토리 뷰
#+begin_src c
static inline uint32_t bitcnt(uint32_t v)
{
uint32_t n;
for(n=0; v!=0; v&=v-1, n++)
;
return (n);
}
#+end_src
v&=v-1, n++ 가 핵심인데
2진수를 v&=v-1 하면, 제일 끝의 1부터 하나씩 사라지는 걸 볼 수 있다.
2진수를 v&=v-1 하면, 제일 끝의 1부터 하나씩 사라지는 걸 볼 수 있다.
'Programming tips > algorithm' 카테고리의 다른 글
google jump consistent hash / Maglev hash (1) | 2018.03.31 |
---|---|
fast modulo op to get hash bucket (0) | 2018.03.31 |
cuckoo-hash : 검색시간이 O(1) (0) | 2018.03.31 |