koenjazh-CNfresde
짬뽕얼큰하게의 맨땅에 헤딩 :: 비트연산 실수하기 쉬운것들

1. 연산자 우선순위

비트연산의 우선순위는 ==, != 연산자보다 낮다.

따라서 비트연산에는 괄호를 꼭 해주는 습관을 해줘야한다.

 a & 1 == b  이 연산은 1 == b를 먼저 수행하고 a & 1 을 수행한다.



2. 연산자 오버플로우

64비트 자료형을 사용할 경우 unsigned long long a;

a |= (1 << 60) 을 하게되면 원하는 값과 다른 결과가 나오게 된다.

1은 32비트 정수형이기때문에 60 만큼 쉬프트하게되면 0이된다.

따라서 1ull 로 정수임을 꼭 알리는 코딩을 하자.


3. 부호

부호가 있는 자료형을 선언할 경우 쉬프트로 부호비트를 킬 수 있다. 음수를 오른쪽으로 쉬프트할경우 1이 채워지는 버그가 생길 수 있다. 조심하자!


 by JM북

'알고리즘' 카테고리의 다른 글

백준(BOJ) 2748 피보나치 수 2  (0) 2018.11.29
비트연산 공부하기  (0) 2018.11.26
백준(BOJ) 1002 터렛  (0) 2018.11.26
백준(BOJ) 2442 별찍기-5  (0) 2018.11.26
백준(BOJ) 1026 보물  (0) 2018.11.26
블로그 이미지

짬뽕얼큰하게

,