티스토리 뷰

알고리즘/코딩 스킬

비트연산

ZeroIron 2020. 8. 25. 10:51

비트 연산자

& 비트단위, AND연산 (= 논리곱, 비트곱)
| 비트단위, OR연산 (= 논리합, 비트합)
^ 비트단위, XOR연산 (같으면 0 다르면 1)
~ 단항 연산자로서 피연산자의 모든 비트를 반전시킴
<< 피연산자의 비트열을 왼쪽으로 이동시킴  ex) 0011 << 2 => 001100
>> 피연산자의 비트열을 오른쪽으로 이동시킴 ex) 0011 >> 2 => 0001

 

  • 1 << n
    • 2^n의 값을 갖는다
    • 원소가 n개일 경우의 모든 부분집합의 수를 의미
  • i & ( 1 << j )
    • 계산 결과는 i의 오른쪽에서 j번째 비트가 1인지 아닌지를 의미
    • 특정 자리가 1인지 0인지 판단
    • 1<<1 은 0001 이 0010이 되는 것이고 이것을 AND연산을 하면 특정 자리가 1인지 0인지 판단할 수 있다
    • 방문 판단
  • i | ( 1 << j )
    • 계산 결과는 i의 기존 비트열에 추가적으로 오른쪽에서 j번째 비트를 1로 만드는 것을 의미
    • 방문 표시

Int 형으로는 32개의 flag 효과,

Long 형으로는 64개의 flag 효과를 얻을 수 있다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함