-
프로그램의 속도를 향상시킬 수 있는 다양한 비트 조작 방법들 중하나.
기본적으로 XOR 연산에 익숙해야하며, 마스크를 어떻게 사용하고 만들 수 있는지 알아야한다.
1로 세팅된 하위 비트의 값을 최적의 방법으로 지울 수 있어야 한다. 0으로 세팅된 하위 비트를 1로 셋하거나 해당 비트의 인덱스를 구하는 방법, 부호의 여부 등 시프트 연산에대해 기본적으로 이해하고 있어야 한다.
시프트연산
a << b 정수 a의 각 비트를 b만큼 왼쪽으로 이동, 빈자리는 0으로 채운다.
a >> b 정수 a의 각 비트를 b만큼 오른쪽으로 이동, 빈자리는 정수 a의 최상위 부호 비트와 같은 값으로 채운다.
a >>> b 정수 a의 비트를 b만큼 오른쪽으로 이동, 빈자리는 0으로 채운다.
a & b and 연산으로 두 비트 모두 1일 경우 1
a | b or 연산으로 두 비트 중 하나만 1이여도 1
a^b xor 연산으로 두 비트중 하나는 1이고 다른 하나가 0일 경우만 1
a~b not 연산으로 비트 반전
'Algorithm' 카테고리의 다른 글
알고리즘 복습.. (0) 2020.12.05 알고리즘 (소수, 구간 합, 투포인터) (0) 2020.10.22 그래프 알고리즘 (0) 2020.09.16 최단경로 (0) 2020.09.02 다이나믹 프로그래밍 (0) 2020.08.30