Blinking Hello Kitty Angel

javascript

자바스크립트 복습 / 비트연산자, 전치, 후치 연산자

xoouxa 2023. 3. 12. 23:39

“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”

- Frederick Philips Brooks
Mythical Man-Month 저자
728x90

1. 비트연산자

비트 연산자는 이진수로 표현된 숫자에 대해 수행되는 연산자 입니다.

이진수는 0과 1로 이뤄진 수 체계를 의미합니다.

 

비트 연산자의 종류

 

AND (&) 연산자 두 비트가 모두 1이면 결과는 1, 그렇지 않으면 0
1 | 3의 경우
1의 2진수는 0001, 3의 2진수는 0011입니다.
0001 | 0011 = 0001 , 2의 0승인 1이 나옵니다.
OR(|) 연산자 두 비트 중 하나 이상이 1이면 결과는 1, 둘 다 0이면 0
1 | 3의 경우
1의 2진수는 0001, 3의 2진수는 0011입니다.
0001 | 0011 = 0011 , 2의 1승인 2가 나옵니다.
XOR(^) 연산자 두 비트가 서로 다르면 결과는 1, 같으면 0
1 | 3의 경우
1의 2진수는 0001, 3의 2진수는 0011입니다.
0001 | 0011 = 1110 , 2의 3승인 2+4+6 = 12가 나옵니다.
NOT(~) 연산자 비트를 반전 시킴. (1은 0, 0은 1)
1 | 3의 경우
1의 2진수는 0001, 3의 2진수는 0011입니다.
0001 | 0011 을 반전시키면 1110 | 1100 입니다.
Lest shift(<<) 연산자 비트를 왼쪽으로 이동. 오른쪽에 0이 추가, 왼쪽 비트 제거
1 | 3의 경우
1의 2진수는 0001, 3의 2진수는 0011입니다.
0001 | 0011 = 0010 | 0110이 됩니다.
Right shift(>>) 연산자 비트를 오른쪽으로 이동, 왼쪽에 0추가, 오른쪽 비트 제거
1 | 3의 경우
1의 2진수는 0001, 3의 2진수는 0011입니다.
0001 | 0011 = 0000 | 0001이 됩니다.

\

 

2. 전치 연산자

전치 연산자는 변수의 값을 먼저 증가시킨 후 그 값을 사용하는 연산자 입니다.

이 연산자는 ++ 기호로 표시됩니다. 예를 들어 ++a는 a 변수의 값을 1씩 증가시킨 후 그 값을 반환합니다.

let num = 5;
console.log(++num); // 6
console.log(num);   // 6

++num 은 변수 num 의 값을 1씩 증가시키고 증가된 값을 반환합니다.

따라서 첫 번째 console.log는 6이 출력되고, 두 번째도 6이 출력됩니다.

만약 후치 연산자를 사용했다면, 변수의 값을 1 증가시키지만, 증가 하기 전의 값을 반환합니다.

위 예제의 경우 num++은 변수 num의 값을 1 증가시키기 전의 값인 5를 반환합니다.

 

3. 후치 연산자

후치 연산자는 변수 값을 1 증가시키지만, 증가 하기 전의 값을 반환하는 연산자입니다.

let num = 5;
console.log(num++); // 5
console.log(num);   // 6

num++은 변수 num의 값을 1 증가시키기 전의 값인 5를 반환합니다.

따라서 첫 번째 console.log는 5가 출력 되고 두 번째에서는 6이 출력됩니다.

 

또 다른 후치연산자 예시

let x = 2;
let y = x++ + 1;
console.log(x); // 3
console.log(y); // 3

위의 예시에서 x++는 변수 x의 값을 1 증가시키기 전의 값인 2를 반환하고 

y는 2+1인 3이 됩니다. 따라서 첫 번째 console.log는 3이 출력 되고 두 번째도 3이 출력됩니다.