ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 비트 스왑
    Algorithm 2022. 2. 22. 02:13

    프로그램의 속도를 향상시킬 수 있는 다양한 비트 조작 방법들 중하나.

     

    기본적으로 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 연산으로 비트 반전

    swap bit 코드

    'Algorithm' 카테고리의 다른 글

    알고리즘 복습..  (0) 2020.12.05
    알고리즘 (소수, 구간 합, 투포인터)  (0) 2020.10.22
    그래프 알고리즘  (0) 2020.09.16
    최단경로  (0) 2020.09.02
    다이나믹 프로그래밍  (0) 2020.08.30
Designed by Tistory.