비트 연산자

이규은·2021년 9월 16일
0

연산자

목록 보기
2/8

비트 연산자는 비트 단위로 논리 연산을 할 때 사용하는 연산자이다.

비트 연산자 설명
& 대응되는 비트가 1이면 1을 반환함(비트 AND 연산)
| 대응 되는 비트 중에서 하나라도 1이면 1을 반환함 (비트 OR 연산)
^ 대응되는 비트가 서로 다르면 1을 반환함 (비트 XOR 연산)
~ 비트를 1이면 0으로 0이면 1로 반전시킴. (비트 NOT 연산, 1의 보수)
<< 명시된 수만큼 비트들을 전부 왼쪽으로 이동시킴 (left shift 연산)
>> 부호를 유지하면서 지정한 수 만큼 비트를 전부 오른쪽으로 이동시킴 (right shift)
>>> 지정한 수만큼 비트를 전부 오른쪽으로 이동시키며, 새로운 비트는 전부 0이 됨.


AND 연산은 대응되는 두 비트가 모두 1일 때만 1을 반환한다.


OR 연산은 대응되는 두 비트중 하나라도 1이면 1을 반환하고 두 비트가 모두 0일때만 0을 반환한다.


XOR 연산은 대응되는 두 비트가 서로 다를때 1을 반환하고 같으면 0을 반환한다.


NOT 연산은 비트가 1이면 0을 반환하고 0이면 1을 반환한다.


왼쪽 스프트 연산자는 지정한 수 만큼 비트를 전부 왼쪽으로 이동시킨다.
이때 비트의 이동으로 새로 생기는 오른쪽 비트는 0으로 채워진다.
모든 비트가 한 비트씩 왼쪽으로 이동할 때마다 값은 2배씩 증가한다.


오른쪽 시프트(>>) 연산자는 지정한 수 만큼 비트를 전부 오른쪽으로 이동시킨다
이때 비트의 이동으로 새로 생기는 왼쪽 비트는 양수일 경우 0 음수일 경우에는 1로 채워진다.
모든 비트가 한 비트씩 오른쪽으로 이동할 때마다 값은 2배씩 감소한다.


오른쪽 시프트 연산자(>>>)는 부호비트까지 포함하여 모든 비트를 전부 오른쪽으로 이동시킨다.
이때 비트의 이동으로 새로 생기는 왼쪽 비트는 언제나 0으로 채워진다.
피연산자가 양수일 경우 오른쪽 시프트 연산자(>>)와 같은 결과를 반환한다.


피연산자가 음수일 경우 부호 비트까지 이동하므로 전혀 다른 결과가 반환된다

profile
안녕하세요

0개의 댓글