코딩 노트
04-3 비트 연산자 본문
1. 비트 연산자 표
2. & 연산자: 비트단위 AND
& 연산은 두 개의 비트가 모두 1일때 1을 반환하는 연산
3. | 연산자: 비트단위 OR
| 연산은 두 개의 비트 중 하나라도 1이면 1을 반환하는 연산
4. ^ 연산자: 비트단위 XOR
^ 연산은 두 개의 비트가 서로 다른 경우에 1을 반환하는 연산
5. ~ 연산자: 비트단위 NOT
~ 연산은 비트를 0에서 1로, 1에서 0으로 반전시키기 때문에 보수연산이라고도 함.
(MSB도 반전되어 부호마저 바뀜...)
6. << 연산자: 비트의 왼쪽 이동(Shift)
<< 연산자는 두 개의 피연산자를 요구하여 다음의 의미를 갖음.
상황에 따라 곱셉과 나눗셈 연산은 비트의 이동 연산으로 대체할 수 있으며, 이는 성능의 향상으로 이어짐
7. >> 연산자: 비트의 오른쪽 이동(Shift)
>> 연산자와 << 연산자의 가장 큰 차이점은 비트의 열을 이동시키는 방향에 있음
따라서 num1 >> num2 연산을 하였을 때, num2의 크기만큼 num1의 비트 열이 오른쪽으로 이동한 결과가 반환 됨.
물론 num1이 양수라면(MSB가 0), 이동으로 인해서 밀려나는 오른쪽의 비트들은 소멸되고 이동으로 인해서 생긴 왼쪽의 빈 자리는 0으로 채워짐. 그러나 num1이 음수라면 CPU에 따라서 달라짐. 음의 값을 유지하기 위해 1을 채우는 CPU도 있고, 음의 값 유지에 상관하지 않고 0을 채우는 CPU도 있기 때문.
'C' 카테고리의 다른 글
05-2 문자의 표현방식과 문자를 위한 자료형 (0) | 2021.05.05 |
---|---|
05-1 C언어가 제공하는 기본 자료형의 이해 (0) | 2021.03.05 |
04-2 정수와 실수의 표현방식 (0) | 2021.02.19 |
04-1 컴퓨터가 데이터를 표현하는 방식 (0) | 2021.02.18 |
03-3 키보드로부터의 데이터 입력과 C언어의 키워드 (0) | 2021.02.06 |