5.7.2 비트 집합과 비트 단위 연산자
방금 본, 부호 없는 타입에 대한 바이너리 표현은 산술 연산과 직접적으로 관련이 없는 용도로 사용할 수 있다. 가령 부호 없는 값을 비트 집합(bit set)으로 해석할 수도 있다. 비트 집합은 기본 집합 V = {0, … , p-1}의 부분집합으로서 bi=1인 i로 구성된다.
비트 집합에 대해 |, &, ^라는 세 가지 바이너리 연산자를 적용할 수 있으며, 각각 합집합 A∪B, 교집합 A∩B, 대칭 차집합(symmetric difference) AΔB를 의미한다.
▼ 표 5-6 비트 단위 연산자
비트 연산 |
십진수 값 |
16진수 값 |
b15 … b0 |
집합 연산 |
집합 표현 |
V |
65535 |
0xFFFF |
1111111111111111 |
|
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} |
A |
240 |
0x00F0 |
0000000011110000 |
|
{4, 5, 6, 7} |
~A |
65295 |
0xFF0F |
1111111100001111 |
V \ A |
{0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 14, 15} |
-A |
65296 |
0xFF10 |
1111111100010000 |
|
{4, 8, 9, 10, 11, 12, 13, 14, 15} |
B |
287 |
0x011F |
0000000100011111 |
|
{0, 1, 2, 3, 4, 8} |
A|B |
511 |
0x01FF |
0000000111111111 |
A ∪ B |
{0, 1, 2, 3, 4, 5, 6, 7, 8} |
A&B |
16 |
0x0010 |
0000000000010000 |
A ∩ B |
{4} |
A^B |
495 |
0x01EF |
0000000111101111 |
A Δ B |
{0, 1, 2, 3, 5, 6, 7, 8} |