어떤 Integer가 주어졌을 경우
해당 Integer의 가장 우측에 존재하는 1의 위치를 찾고자 한다면 다음과 같이 하면 된다.
N & -N
6을 예로 들어보겠다.
6의 2진수는
0000 0110
이 된다.
해당 값을 음수로 변환하면
(보수 처리 하고 마지막 1을 더하면 음수이다.)
1111 1010
이 된다.
And 처리를 하면
0000 0010
이 되고 가장 우측 위치 값은 2가 된다.
728x90
반응형
'Problem Solving' 카테고리의 다른 글
Maximum Profit in Job Scheduling (0) | 2021.05.06 |
---|---|
Binary Indexed Tree (Fenwick tree) (0) | 2021.05.02 |
Segment Tree (0) | 2021.05.02 |
Create Sorted Array through Instructions (0) | 2021.05.02 |
Employee Free Time (0) | 2021.05.01 |