취소

커뮤니티

가이드

서포트

전체

Overview

2진수를 조작하는 사용되는 연산자들로 최종적으로는 결과값으로 숫자 값을 반환한다. 자바스크립트에서는 잘 사용되지 않는다.

2진수 값을 불리언값(1:true, 0:false)으로  취급하여 연산하는 AND(&), OR(|), XOR(^), NOT(~)와 32비트 정수의 비트를 이동시키는데 사용되는 쉬프트 연산자(<<, >>, >>>)가 있다. 쉬프트 연산자의 왼쪽 피연산자는 32비트 정수가 위치하고 연산자의 오른쪽 피연산자는 0~31값이어야 한다.(32비트 정수를 이동시키는 수가 위치해야 하므로) 

1. AND(&) 연산자

두 2진수(정수)의 개별 비트값을 불리언값(1:true, 0:false)으로  취급하여 AND연산을 수행

2. OR(|) 연산자

두 2진수의 개별 비트값을 불리언값(1:true, 0:false)으로  취급하여 OR연산을 수행

3. XOR(^) 연산자

두 2진수의 개별 비트값을 불리언값(1:true, 0:false)으로  취급하여 XOR연산(배타적 불리언)을 수행

4. NOT(~) 연산자

단항 연산자로 피연자인 2진수의 비트를 반전 시킨다. 부호비트도 반전 되므로 부호도 바뀐다.

5. 비트를 왼쪽 이동(<<)

모든 비트를 왼쪽으로 오른쪽 피연산자 수만큼 이동시킨다. 이동시키면서 새로 채워지는 비트는 0으로 채워쥐고 32비트를 넘치는 비트는 잘려지게 된다. 2진수 값을 1만큼(한자리를) 왼쪽으로 이동시키는 것은 2를 곱하는 것과 같다.

ex)

3<<1 // 6

3<<2 // 12

3<<3 // 24

6. 비트를 오른쪽 이동(>>)

오른쪽 피연산자 수만큼 비트를 오른쪽으로 이동시킨다. 새로 채워지는 비트는 왼쪽피연자가 양수이면 0, 음수이면 1로 채워진다. 2진수 값을 1만큼(한자리를) 오른쪽으로 이동시키는 것은 2를 나눈는 것과 같다.

7. 맨앞 부호비트를 0으로 채우면서 나머지 비트를 오른쪽으로 이동(>>>)

>>연산자와 동일하나 맨앞 부호비트를 0으로 채우고 오른쪽 피연산자 수만큼 비트를 이동시킨다.