비트 연산자 (Bitwise Operation)

이유정·2023년 9월 14일

c언어

목록 보기
1/16

(1) shift 연산자

: 비트를 이동시키는 연산자
'>>': 오른쪽으로 n칸 이동
'<<': 왼쪽으로 n칸 이동

ex. void main(){
    int a, b, c, d ;
    a = 4 ;
    b = 1 ;
    c = a << b ;
    d = a >> b;
}
c = 1 0 0 (a = 4)
---------- (1(b = 1)칸 왼쪽으로 이동)
    1 0 0 0 → 8
 
d = 1 0 0
---------- (1칸 오른쪽으로 이동)
          1 0 . 0 → 2 

(2) AND(&) 연산자

해당 비트 모두 1이 할당되어 있어야, 1을 반환하는 연산자

ex. 5&3
5 = 1 0 1
3 = 0 1 1
-----------(AND 연산자)
    0 0 1 → 1 

(3) OR(|) 연산자

비트 하나라도 1이 할당되어 있는 경우, 1을 반환하는 연산자

ex. 5|3
5 = 1 0 1
3 = 0 1 1
-----------(OR 연산자)
    1 1 1 → 7

(4) XOR(^) 연산자

두 개의 비트가 서로 다른 경우, 1을 반환
두 개의 비트가 서로 같은 경우, 0을 반환하는 연산자

ex. 5^3
5 = 1 0 1
3 = 0 1 1
-----------(XOR 연산자)
    1 1 0 → 6

(5) NOT(~) 연산자

비트를 0에서 1로, 1에서 0으로 반전시키는 연산자 =보수 연산자)

ex. ~5
 5 = 1 0 1
~5 = 0 1 0 → 2 (NOT 연산자)

참조: https://sf2020.tistory.com/29

profile
안녕하세요 이유정입니다. 반갑습니다.

0개의 댓글