비트 연산이란?
비트 연산이라 함은 &, |, ~, ^ 을 이용한 연산을 의미한다.
비트 연산은 언제 사용하는가?
우선 비트 연산을 사용하면 bit라는 최소 정보단위로 다른 추상화된 정보들과는 달리 재현의 과정을 거치지 않는다.(그렇기에 속도는 빠르다)
즉, 각 비트들의 0 혹은 1이라는 값을 특정 의미를 가지는 플래그로 활용한다.
비트 연산 예시
우선 아래의 예시를 보자.
const OPTION_A = 0x01;const OPTION_B = 0x02;const OPTION_C = 0x04;const OPTION_D = 0x08;
위의 OPTION A, B, C, D의 값은 16진수로 표현하였다.
즉 16진수는 4비트로 표현이되며 A는 0001(1), B는 0010(2), C는 0100(4), D는 1000(8)을 의미한다.
만약 1바이트(8비트)를 표현하고 싶다면 어떻게 해야 될까?
아래의 예제를 보며 이해를 해보길 바란다.
const OPTION_E = 0x10;
E는 0001 0000을 의미한다. 추가적으로 비트를 늘릴 때는 위의 원리를 이용하면 된다.
해당 비트를 1로 변경할 때는 아래의 예제를 참고하자.
var flag |= OPTION_A
해당 비트가 1인지 확인할 때는 아래의 예제를 참고하자.
var flag &= OPTION_A
해당 비트를 0으로 변경할 때는 아래의 예제를 참고하자.
var flag &= ~(OPTION_A)
정리
비트 연사을 사용하면 하나의 정수로 여러 플래그의 표현이 가능하다.
비트 연산은 알고리즘 문제에 대해서도 많이 사용되므로 정확히 이해하고 넘어가면 좋을 것 같다.
'Language > Javascript' 카테고리의 다른 글
Name Spacing Pattern (0) | 2017.07.28 |
---|---|
promise - 2 [Promise 사용 시 주의할 것] (0) | 2017.07.28 |
promise - 1 [then, catch, resolve, reject] (0) | 2017.07.28 |
closure (0) | 2017.07.28 |
scope - 3 [변수 숨기기] (0) | 2017.07.28 |