비트 연산이란?

비트 연산이라 함은 &, |, ~, ^ 을 이용한 연산을 의미한다.

비트 연산은 언제 사용하는가?

우선 비트 연산을 사용하면 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

+ Recent posts