32. 비트 연산자

질문) 논리 연산자와 비트 연산은 무슨 차이가 있는 거야? 대답) 비트 연산은 같은 자리의 비트마다 논리 연산을 하는 거야. 논리 연산 4&&2는 연산 결과가 1이야. 비트 연산에서는 같은 자리마다 논리 연산해서 0이지.

&, |, ^ , ~

C언어에서는 비트 단위로 논리 연산을 수행하는 비트 연산을 제공하고 있어요.
비트 연산의 피연산자는 정수 형식이 올 수 있어요.

이항 연산자 &는 비트 단위로 논리곱 연산을 수행하죠.
예를 들어 6&5를 하면 6은 이진수로 110이고 5는 이진수로 101이므로 6&5의 연산 결과는 이진수 100이고 10진수 4예요.

6&5 결과는 4

이항 연산자 | 는 비트 단위로 논리합 연산을 수행하죠.
예를 들어 6|5의 연산 결과는 이진수 111 이고 10진수 7이예요.

6|5 결과는 7

이항 연산자 ^는 비트 단위로 상호 배타 논리 연산을 수행하죠.
즉 같은 자리의 비트가 서로 다르면 1, 같으면 0 이예요.
예를 들어 6^5의 연산 결과는 이진수 011 이고 10진수 3이예요.

6^5 결과는 3

단항 연산자 ~는 1인 자리는 0으로 0인 자리는 1로 바꾸는 연산을 수행합니다.

◈ 비트 연산

◈ 실행 결과

 

◈ 기본연습
다음 코드를 실행하였을 때 출력 결과를 예측하고 이유를 설명하세요.


동영상 강의

[C언어 무료 동영상 강의] 32. 비교 연산자 33. 비교 연산자 ^를 이용한 암호화