Problem Solving

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

enumclass 2021. 5. 2. 16:56

어떤 Integer가 주어졌을 경우

해당 Integer의 가장 우측에 존재하는 1의 위치를 찾고자 한다면 다음과 같이 하면 된다.

N & -N

6을 예로 들어보겠다.

6의 2진수는

0000 0110

이 된다.

해당 값을 음수로 변환하면

(보수 처리 하고 마지막 1을 더하면 음수이다.)

1111 1010

이 된다.

And 처리를 하면

0000 0010

이 되고 가장 우측 위치 값은 2가 된다.

728x90
반응형