응애맘마조
비트 연산자와 시프트 연산자 본문
주의 : 해당 게시물에서 작성될 내용은 과제를 해결하기 위해 출처의 내용을 그대로 작성한 부분이 많으며 일절 광고나 수익 창출 목적으로 쓰인 것이 아님을 밝힙니다.
비트 연산자(Bitwise Operator)
비트 연산자는 비트 단위로 논리 연산을 할 때 사용하는 연산자입니다.
비트 연산자 | 의미 |
& | AND 연산 : 대응되는 비트가 모두 1이면 1을 반환 |
| | OR 연산 : 대응되는 비트 중에서 하나라도 1이면 1을 반환 |
^ | XOR 연산 : 대응되는 비트가 서로 다르면 1을 반환 |
~ | NOT 연산 : 비트가 1이면 0으로, 0이면 1로 반환 |
비트 연산자의 결과 값은 다음과 같습니다.
결과 값(AND) | 결과 값(OR) | 결과 값(XOR) | 결과 값(NOT)
0 & 0 = 0 | 0 | 0 = 0 | 0 ^ 0 = 0 | ~0 = 1
0 & 1 = 0 | 0 | 1 = 1 | 0 ^ 1 = 1 | ~1 = 0
1 & 0 = 0 | 1 | 0 = 1 | 1 ^ 0 = 1
1 & 1 = 1 | 1 | 1 = 1 | 1 ^ 1 = 0
시프트 연산자(Shift Operator)
시프트 연산자는 비트 연산자 중 하나로 비트 값을 왼쪽이나 오른쪽으로 이동시키는 연산자입니다.
비트 값을 주어진 비트 수만큼 이동시킨 후 빈 공간을 0으로 채웁니다.
시프트 연산자 | 의미 |
>> | Left Shift 연산 : 비트 값을 주어진 숫자만큼 오른쪽으로 이동 |
<< | Right Shift 연산 : 비트 값을 주어진 숫자만큼 왼쪽으로 이동 |
시프트 연산자의 결과 값은 다음과 같습니다.
num1 = 0000 0011
num1 << 3
0001 1000
num2 = 0001 1000
num2 >> 2
0000 0110
출처
http://www.tcpschool.com/c/c_operator_bitwise
http://wiki.hash.kr/index.php/%EC%8B%9C%ED%94%84%ED%8A%B8%EC%97%B0%EC%82%B0%EC%9E%90
읽어주셔서 감사합니다.