[C#] 비트연산 Brian Kernighan (1비트 체크)

업데이트:

카테고리:

태그: ,


Brian Kernighan



Brian Kernighan

이진수에서 가장 오른쪽에 있는 1비트를 하나 없애는 것.

Brian Kernighan
int n = 12;         //string bin = Convert.ToString(n, 2);
int count = 0;

while (n>0)
{
    n &= (n - 1);
    count++;
}
  • 12 (1100)
  • 11 (1011) & = 1000(8)
  • n-1 는 n에서 가장 오른쪽 1과 그 오른쪽 비트들을 반전시킨다.
  • 그러므로 n & n-1 은 가장 오른쪽 1이 사라진 값이 된다.








메모


📔

댓글남기기