번호 | 제목 | 글쓴이 | 날짜 | 추천 수 | 조회 수 |
---|---|---|---|---|---|
5 | kjw2007 00a45 11 | 관리자 | 2019.03.02 | 0 | 0 |
4 | kjw2007 00a45 11 [2] | 관리자 | 2019.03.02 | 0 | 22 |
3 | kjw2007 00a07 2 | 관리자 | 2019.03.02 | 0 | 0 |
» | kjw2007 00a07 2 [4] | 관리자 | 2019.03.02 | 0 | 40 |
1 | mentee 00a93 14 [2] | 관리자 | 2019.03.02 | 0 | 23 |
이 문제에서 주의할 점은 일반적인 오른쪽 shift 연산자는 부호 비트로 채워진다는 것입니다. 즉 음수일 경우에는 왼쪽에 1이 채워지지요.
문제에서는 무조건 왼쪽에 0이 채워져야 합니다.
이러한 경우에는 mask 연산이 필요합니다.
오른쪽 쉬프트 연산을 해서 1일 채워지더라도 1로 채워진 부분을 0으로 바꿔야 합니다.
예를 들어 이진수 1001 (맨 왼쪽 1이 부호 비트라고 가정)이라면...
오른쪽 쉬프트 연산하면 1100 이 됩니다. 이때 맨 앞 왼쪽 비트는 0으로 바꾸려면
1100
& 0111
= 0100
하면 됩니다.