Mafa Dev
비트연산자 본문
연산자 : &
-> 비트 단위로 AND 연산을 한다 ( 두 비트가 1 이여야 1 이다.)
ex) num1 = 5 ( 00000000 00000000 00000000 00000101 )
num2 = 15 ( 00000000 00000000 00000000 00001111 )
num1 & num2 = 5 ( 00000000 00000000 00000000 00000101 )
연산자 : |
-> 비트 단위로 OR 연산을 한다 ( 두 비트가 0 이여야 0 이다.)
ex) num1 = 5 ( 00000000 00000000 00000000 00000101 )
num2 = 15 ( 00000000 00000000 00000000 00001111 )
num1 & num2 = 0 ( 00000000 00000000 00000000 00000000 )
연산자 : ^
-> 비트 단위로 XOR 연산을 한다. ( 두 비트가 다르면 1 같으면 0)
ex) num1 = 5 ( 00000000 00000000 00000000 00000101 )
num2 = 15 ( 00000000 00000000 00000000 00001111 )
num1 & num2 = 12 ( 00000000 00000000 00000000 00001010 )
연산자 : ~
-> 단항 연산자로서 피연산자의 모든 비트를 반전시킨다.
ex) num1 = 15 ( 00000000 00000000 00000000 00001111)
~num1 = -16 ( 11111111 11111111 11111111 11110000) -> 값의 부호비트를 담당하는 MSB도 변경되어 음수로 변함
연산자 : <<
-> 비트의 열을 왼쪽으로 이동시킨다.
ex) num1 = 15 ( 00000000 00000000 00000000 00001111 )
num1 << 1 = 30 ( 00000000 00000000 00000000 00011110 )
num1 << 2 = 60 ( 00000000 00000000 00000000 00111100 )
num1 << 3 =120 ( 00000000 00000000 00000000 01111000 )
값이 2배씩 증가 한다는 것을 알수가 있다.
연산자 : >>
-> 비트의 열을 오른쪽으로 이동시킨다.
ex) num1 = 120 ( 00000000 00000000 00000000 01111000 )
num1 >> 1 = 60 ( 00000000 00000000 00000000 00111100 )
num1 >> 2 = 30 ( 00000000 00000000 00000000 00011110 )
num1 >> 3 = 15 ( 00000000 00000000 00000000 00001111 )
값이 2배씩 감소 한다는 것을 알수가 있다.
'C언어 > 유용한 것' 카테고리의 다른 글
#define 과 const 선언의 차이점 (0) | 2013.02.20 |
---|---|
포인터 대상의 const 선언 (0) | 2013.01.23 |
서식문자의 종류와 그 의미 (0) | 2013.01.17 |
특수문자의 종류 (0) | 2013.01.17 |
기본 자료형의 종류와 데이터의 표현범위 (0) | 2013.01.17 |