2진수 최 우측 1의 자리 찾아내기

어떤 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