happy coding

[c] 비트 단위 연산 본문

self study/언어의 기본부터

[c] 비트 단위 연산

yeoonii 2022. 11. 30. 01:19
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