happy coding
[c] 비트 단위 연산 본문
TCP school 을 보고 정리한 내용입니다.
비트 단위 연산(bitwise operation)
컴퓨터는 모든 데이터를 비트 단위로 표현하고 처리하기 때문에, 이 연산을 통해 사용되는 메모리 공간을 줄이거나, 성능의 향상을 기대할 수 있다.
비트 연산자
~ | 비트를 1이면 0으로, 0이면 1로 반전시킴. (비트 NOT 연산) |
& | 대응되는 비트가 모두 1이면 1을 반환함. (비트 AND 연산) |
| | 대응되는 비트 중에서 하나라도 1이면 1을 반환함. (비트 OR 연산) |
^ | 대응되는 비트가 서로 다르면 1을 반환함. (비트 XOR 연산) |
<< | 지정한 수만큼 비트들을 전부 왼쪽으로 이동시킴. (left shift 연산) |
>> | 지정한 수만큼 비트들을 전부 오른쪽으로 이동시킴. (right shift 연산) |
비트 연산자 진리표
비트 연산자 진리표란 각 비트의 값에 따라 얻을 수 있는 가능한 비트값을 표로 나타낸 것을 말한다.
비트1 | 비트2 | 비트1 & 비트2 | 비트1 | 비트2 | 비트1 ^ 비트2 | ~ 비트1 | ~ 비트2 |
0 | 0 | 0 | 0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 0 | 0 | 0 |
비트 NOT 연산자는 주어진 비트를 반전시켜 1의 보수로 만들어 주며, 이 연산자는 피연산자가 하나뿐인 단항 연산자이다.
비트 AND 연산자는 두 개의 피연산자 비트가 모두 1일 때만 1을 반환하며, 두 개의 피연산자를 가지는 이항 연산자이다.
비트 OR 연산자는 두 개의 피연산자 비트 중 하나라도 1일 때는 1을 반환하며, 두 개의 피연산자를 가지는 이항 연산자이다.
비트 XOR 연산자는 배타적 논리합(exclusive OR)라고도 불리며, 두 개의 피연산자 중 하나만이 1일 때 1을 반환한다. 이 성질을 이용해 모든 비트를 반전시키는 NOT 연산자와 다르게 지정한 비트만을 반전시킬 수 있다. 또한, 이 연산자는 두 개의 피연산자를 가지는 이항 연산자이다.
비트 시프트 (shift) 연산자는 비트 이동 연산자라고도 하며, 지정한 수만큼 모든 비트를 전부 좌우로 이동시킨다. 이 연산자에는 1. 왼쪽 시프트 연산자(<<,left shift) 2. 오른쪽 시프트 연산자(>>,right shift) 가 존재한다.
'self study > 언어의 기본부터' 카테고리의 다른 글
[c] 실수의 표현 (1) | 2022.11.30 |
---|---|
[c] 음수의 표현 (0) | 2022.11.30 |
[c] 바이트 저장 순서 (0) | 2022.11.30 |
[c] 조건부 컴파일(conditional compile) (0) | 2022.11.28 |
[c] 분할 컴파일 (0) | 2022.11.28 |
Comments